From 6a01ddbfc695cab641ec95bd3249de5f5f561987 Mon Sep 17 00:00:00 2001 From: nongfugengxia Date: Tue, 19 Mar 2024 12:12:34 +0800 Subject: [PATCH] Deployed c022e24 with MkDocs version: 1.5.3 --- index.html | 2 +- search/search_index.json | 2 +- sitemap.xml.gz | Bin 127 -> 127 bytes todo/index.html | 1 + 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 48db50133..e91a4c0ac 100755 --- a/index.html +++ b/index.html @@ -529,5 +529,5 @@

其他

diff --git a/search/search_index.json b/search/search_index.json index 8f333af32..78b866ec2 100755 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["ja"],"min_search_length":2,"prebuild_index":false,"separator":"[\\s\\-\\.]+"},"docs":[{"location":"","text":"Carla \u6587\u6863 \u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002 \u5165\u95e8 \u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002 \u6784\u5efa Carla \u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 Carla \u4e3b\u9898 \u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002 \u4ea4\u901a \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u884c\u4eba \u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u9ad8\u7ea7 \u6982\u5ff5 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u8003 Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u6559\u7a0b \uff08 \u901a\u7528 \uff09 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u6559\u7a0b \uff08 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \uff09 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5 \u793a\u4f8b \u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002 \u8d21\u732e \u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002 \u5176\u4ed6 RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u4e3b\u9875"},{"location":"#carla","text":"\u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002","title":"Carla \u6587\u6863"},{"location":"#_1","text":"\u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002","title":"\u5165\u95e8"},{"location":"#carla_1","text":"\u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002","title":"\u6784\u5efa Carla"},{"location":"#carla_2","text":"\u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002","title":"Carla \u4e3b\u9898"},{"location":"#_2","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002","title":"\u4ea4\u901a"},{"location":"#_3","text":"\u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u884c\u4eba"},{"location":"#_4","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002","title":"\u9ad8\u7ea7 \u6982\u5ff5"},{"location":"#_5","text":"Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002","title":"\u53c2\u8003"},{"location":"#_6","text":"Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"#_7","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe","title":"\u5927 \u5730\u56fe"},{"location":"#_8","text":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla","title":"\u6559\u7a0b \uff08 \u901a\u7528 \uff09"},{"location":"#_9","text":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599","title":"\u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09"},{"location":"#_10","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5","title":"\u6559\u7a0b \uff08 \u5f00\u53d1\u4eba\u5458 \uff09"},{"location":"#_11","text":"\u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b","title":"\u793a\u4f8b"},{"location":"#carla_3","text":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002","title":"Carla \u751f\u6001\u7cfb\u7edf"},{"location":"#_12","text":"\u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002","title":"\u8d21\u732e"},{"location":"#_13","text":"RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u5176\u4ed6"},{"location":"3rd_party_integrations/","text":"3rd Party Integrations Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib ROS bridge Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . SUMO Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here . PTV Vissim PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide Scenic Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios . CarSIM Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here . OpenDRIVE OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here RSS - Responsibility Sensitive Safety Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here AWS and RLlib integration The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here . Chrono physics Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#3rd-party-integrations","text":"Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#ros-bridge","text":"Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS bridge"},{"location":"3rd_party_integrations/#sumo","text":"Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here .","title":"SUMO"},{"location":"3rd_party_integrations/#ptv-vissim","text":"PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide","title":"PTV Vissim"},{"location":"3rd_party_integrations/#scenic","text":"Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios .","title":"Scenic"},{"location":"3rd_party_integrations/#carsim","text":"Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here .","title":"CarSIM"},{"location":"3rd_party_integrations/#opendrive","text":"OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here","title":"OpenDRIVE"},{"location":"3rd_party_integrations/#rss-responsibility-sensitive-safety","text":"Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here","title":"RSS - Responsibility Sensitive Safety"},{"location":"3rd_party_integrations/#aws-and-rllib-integration","text":"The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here .","title":"AWS and RLlib integration"},{"location":"3rd_party_integrations/#chrono-physics","text":"Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"Chrono physics"},{"location":"adv_agents/","text":"Carla \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002 \u8ba1\u5212 \u4e0e \u63a7\u5236 controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002 \u667a\u80fd \u4f53 \u884c\u4e3a basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002 \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive \u884c\u4e3a \u7c7b\u578b \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( ) \u521b\u5efa \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#carla","text":"Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#_1","text":"Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002","title":"\u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0"},{"location":"adv_agents/#_2","text":"controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002","title":"\u8ba1\u5212 \u4e0e \u63a7\u5236"},{"location":"adv_agents/#_3","text":"basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002","title":"\u667a\u80fd \u4f53 \u884c\u4e3a"},{"location":"adv_agents/#_4","text":"\u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive","title":"\u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53"},{"location":"adv_agents/#_5","text":"\u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002","title":"\u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_6","text":"\u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( )","title":"\u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_7","text":"Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"\u521b\u5efa \u667a\u80fd \u4f53"},{"location":"adv_benchmarking/","text":"\u57fa\u51c6 \u6027\u80fd \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u5f00\u59cb \u4e4b\u524d \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil \u6982\u8981 python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ] \u6807\u5fd7 -- host : IP _ ADDRESS \u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002 -- port : \u7aef\u53e3 \u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- file : \u6587\u4ef6 \u6587\u4ef6\u540d . md \u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002 -- tm \u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6 -- ticks \u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002 -- \u540c\u6b65 \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- async \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- fixed _ dt \u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002 -- render _ mode \u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- no _ render _ mode \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- show _ scenarios \u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002 -- sensors \uff1a \u6574\u6570 \u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M -- maps \uff1a \u57ce\u5e02 \u540d\u79f0 \u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps -- \u5929\u6c14 \uff1a \u6574\u6570 Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode Carla \u6027\u80fd \u62a5\u544a \u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_1","text":"\u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_2","text":"\u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002","title":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c"},{"location":"adv_benchmarking/#_3","text":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"adv_benchmarking/#_4","text":"python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ]","title":"\u6982\u8981"},{"location":"adv_benchmarking/#_5","text":"","title":"\u6807\u5fd7"},{"location":"adv_benchmarking/#-host-ip_address","text":"\u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002","title":"-- host : IP _ ADDRESS"},{"location":"adv_benchmarking/#-port","text":"\u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002","title":"-- port : \u7aef\u53e3"},{"location":"adv_benchmarking/#-file-md","text":"\u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002","title":"-- file : \u6587\u4ef6\u540d . md"},{"location":"adv_benchmarking/#-tm","text":"\u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6","title":"-- tm"},{"location":"adv_benchmarking/#-ticks","text":"\u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002","title":"-- ticks"},{"location":"adv_benchmarking/#-","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- \u540c\u6b65"},{"location":"adv_benchmarking/#-async","text":"\u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- async"},{"location":"adv_benchmarking/#-fixed_dt","text":"\u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002","title":"-- fixed _ dt"},{"location":"adv_benchmarking/#-render_mode","text":"\u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- render _ mode"},{"location":"adv_benchmarking/#-no_render_mode","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- no _ render _ mode"},{"location":"adv_benchmarking/#-show_scenarios","text":"\u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002","title":"-- show _ scenarios"},{"location":"adv_benchmarking/#-sensors","text":"\u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M","title":"-- sensors \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#-maps","text":"\u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps","title":"-- maps \uff1a \u57ce\u5e02 \u540d\u79f0"},{"location":"adv_benchmarking/#-_1","text":"Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset","title":"-- \u5929\u6c14 \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#_6","text":"1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode","title":"\u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"adv_benchmarking/#carla","text":"\u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"Carla \u6027\u80fd \u62a5\u544a"},{"location":"adv_digital_twin/","text":"\u7b14\u8bb0 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u9879 \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u5730\u56fe \u7684 \u67d0\u4e9b \u90e8\u5206 \u53ef\u80fd \u672a \u88c5\u9970 \u6216 \u65e0 \u7eb9\u7406 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \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 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a Using a URL \u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002 \u4e0b\u8f7d OSM \u6587\u4ef6 \u5e76 \u5728 \u754c\u9762 \u4e2d \u5bfc\u822a \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file > 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 \u6807\u8bb0 \u548c \u7eb9\u7406 \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","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"adv_digital_twin/#_1","text":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \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 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002","title":"\u6784\u5efa OSM \u6e32\u67d3\u5668"},{"location":"adv_digital_twin/#osm_1","text":"\u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a","title":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e"},{"location":"adv_digital_twin/#using-a-url","text":"\u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002","title":"Using a URL"},{"location":"adv_digital_twin/#osm_2","text":"\u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file >","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 \u6807\u8bb0 \u548c \u7eb9\u7406 \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_multigpu/","text":"Carla \u591a GPU \u529f\u80fd Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002 \u540c\u6b65 \u6a21\u5f0f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#carla-gpu","text":"Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#_1","text":"\u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002","title":"\u4e3b \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_2","text":"\u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002","title":"\u8f85\u52a9 \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_3","text":"\u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_opendrive/","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210 \u6982\u8ff0 \u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u70b9 \u548c \u6536\u76ca \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002 \u7f51\u683c \u751f\u6210 \u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#opendrive","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#_1","text":"\u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u70b9 \u548c \u6536\u76ca \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002","title":"\u6982\u8ff0"},{"location":"adv_opendrive/#_2","text":"\u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002","title":"\u8fd0\u884c \u72ec\u7acb \u5730\u56fe"},{"location":"adv_opendrive/#_3","text":"\u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u7f51\u683c \u751f\u6210"},{"location":"adv_procedural_building_tool/","text":"\u7b14\u8bb0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u4e2a \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119 \u6253\u5f00 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002 \u7f51\u683c \u53c2\u6570 \u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002 \u7f51\u683c \u5143\u7d20 \u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002 \u5957 \u63a5\u5b57 \u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002 \u5916\u5899 \u6750\u6599 \u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002 \u70d8\u7119 \u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"Adv procedural building tool"},{"location":"adv_procedural_building_tool/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_2","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002","title":"\u6253\u5f00 \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_3","text":"\u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002","title":"\u57fa\u672c\u53c2\u6570"},{"location":"adv_procedural_building_tool/#_4","text":"\u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002","title":"\u7f51\u683c \u53c2\u6570"},{"location":"adv_procedural_building_tool/#_5","text":"\u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002","title":"\u7f51\u683c \u5143\u7d20"},{"location":"adv_procedural_building_tool/#_6","text":"\u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002","title":"\u5957 \u63a5\u5b57"},{"location":"adv_procedural_building_tool/#_7","text":"\u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002","title":"\u5916\u5899 \u6750\u6599"},{"location":"adv_procedural_building_tool/#_8","text":"\u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"\u70d8\u7119"},{"location":"adv_ptv/","text":"PTV - Vissim \u8054\u5408 \u4eff\u771f Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc \u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#ptv-vissim","text":"Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_1","text":"\u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_ptv/#_2","text":"\u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002","title":"\u8fd0\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_3","text":"\u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc"},{"location":"adv_recorder/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c \u8bb0\u5f55 \u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u64ad\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002 \u5f55\u5236 \u6587\u4ef6 \u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds \u67e5\u8be2 \u78b0\u649e \u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002 \u88ab \u5361\u4f4f \u7684 \u89d2\u8272 \u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 ) \u793a\u4f8b python \u811a\u672c PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_1","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_2","text":"\u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"adv_recorder/#_3","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u64ad\u653e"},{"location":"adv_recorder/#_4","text":"\u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002","title":"\u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50"},{"location":"adv_recorder/#_5","text":"\u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds","title":"\u5f55\u5236 \u6587\u4ef6"},{"location":"adv_recorder/#_6","text":"","title":"\u67e5\u8be2"},{"location":"adv_recorder/#_7","text":"\u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002","title":"\u78b0\u649e"},{"location":"adv_recorder/#_8","text":"\u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 )","title":"\u88ab \u5361\u4f4f \u7684 \u89d2\u8272"},{"location":"adv_recorder/#python","text":"PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u793a\u4f8b python \u811a\u672c"},{"location":"adv_rendering_options/","text":"\u6e32\u67d3 \u9009\u9879 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u8d28\u91cf \u7b49\u7ea7 Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002 \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\ \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002 \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_2","text":"","title":"\u56fe\u5f62 \u8d28\u91cf"},{"location":"adv_rendering_options/#vulkan-api","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"Vulkan \u56fe\u5f62 API"},{"location":"adv_rendering_options/#_3","text":"Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002","title":"\u8d28\u91cf \u7b49\u7ea7"},{"location":"adv_rendering_options/#_4","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_5","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"adv_rendering_options/#_6","text":"\u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002","title":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_7","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"adv_rendering_options/#_8","text":"\u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002","title":"\u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3"},{"location":"adv_rendering_options/#0912","text":"\u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09"},{"location":"adv_rendering_options/#0912_1","text":"\u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09"},{"location":"adv_rss/","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u6982\u8ff0 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u4f9d\u8d56 \u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus \u6784\u5efa \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss \u5f53\u524d \u72b6\u6001 RssSensor carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 RssRestrictor \u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_1","text":"Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_2","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u6982\u8ff0"},{"location":"adv_rss/#_3","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u7f16\u8bd1"},{"location":"adv_rss/#_4","text":"\u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus","title":"\u4f9d\u8d56"},{"location":"adv_rss/#_5","text":"\u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss","title":"\u6784\u5efa"},{"location":"adv_rss/#_6","text":"","title":"\u5f53\u524d \u72b6\u6001"},{"location":"adv_rss/#rsssensor","text":"carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002","title":"RssSensor"},{"location":"adv_rss/#rssrestrictor","text":"\u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"RssRestrictor"},{"location":"adv_sumo/","text":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa carla vtypes \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002 \u521b\u5efa SUMO \u7f51\u7edc \u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 \u8fd0\u884c \u540c\u6b65 \u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f \u4e0e Carla \u8fdb\u884c SUMO \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u548c SUMO \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#sumo","text":"Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210","title":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#_1","text":"\u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_sumo/#_2","text":"","title":"\u8fd0\u884c \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#carla-vtypes","text":"\u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002","title":"\u521b\u5efa carla vtypes"},{"location":"adv_sumo/#sumo_1","text":"\u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002","title":"\u521b\u5efa SUMO \u7f51\u7edc"},{"location":"adv_sumo/#_3","text":"\u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002","title":"\u8fd0\u884c \u540c\u6b65"},{"location":"adv_sumo/#sumo-npc","text":"\u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui \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":"\u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210"},{"location":"adv_synchrony_timestep/","text":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05 \u4eff\u771f \u8bb0\u5f55 Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002 \u7269\u7406 \u5b50\u6b65 \u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u53ef\u80fd \u7684 \u914d\u7f6e \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002 \u7269\u7406 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_1","text":"\u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_2","text":"\u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002","title":"\u4eff\u771f \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_3","text":"Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0","title":"\u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_4","text":"\u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05","title":"\u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_5","text":"Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002","title":"\u4eff\u771f \u8bb0\u5f55"},{"location":"adv_synchrony_timestep/#_6","text":"\u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002","title":"\u7269\u7406 \u5b50\u6b65"},{"location":"adv_synchrony_timestep/#-","text":"Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002","title":"\u5ba2\u6237\u7aef - \u670d\u52a1\u5668 \u540c\u6b65"},{"location":"adv_synchrony_timestep/#_7","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_8","text":"\u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_9","text":"\u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002","title":"\u53ef\u80fd \u7684 \u914d\u7f6e"},{"location":"adv_synchrony_timestep/#_10","text":"Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u7269\u7406 \u786e\u5b9a\u6027"},{"location":"adv_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002 \u7528\u6237 \u5b9a\u5236 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u67b6\u6784 \u6982\u8ff0 \u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp . \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp . \u4eff\u771f \u72b6\u6001 \u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h . \u63a7\u5236 \u5faa\u73af \u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u5185\u5b58 \u5730\u56fe \u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp . PBVT PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp . \u547d\u4ee4 \u6570\u7ec4 \u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5 \u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp . \u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5 \u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp . \u7b2c\u4e09 \u4e09\u9636 \u9636\u6bb5 \u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp . \u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp . \u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5 \u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp . \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 ) \u914d\u7f6e autopilot \u884c\u4e3a \u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False ) \u59d4\u6d3e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002 \u8fd0\u884c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 ) \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B \u591a\u91cd \u4eff\u771f \u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002 \u540c\u6b65 \u6a21\u5f0f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002 \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_1","text":"\u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_2","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002","title":"\u4ec0\u4e48 \u662f \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f"},{"location":"adv_traffic_manager/#_3","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002","title":"\u7ed3\u6784\u5316 \u8bbe\u8ba1"},{"location":"adv_traffic_manager/#_4","text":"\u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002","title":"\u7528\u6237 \u5b9a\u5236"},{"location":"adv_traffic_manager/#_5","text":"","title":"\u67b6\u6784"},{"location":"adv_traffic_manager/#_6","text":"\u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002","title":"\u6982\u8ff0"},{"location":"adv_traffic_manager/#_7","text":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp .","title":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406"},{"location":"adv_traffic_manager/#_8","text":"\u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp .","title":"\u8f66\u8f86 \u6ce8\u518c\u8868"},{"location":"adv_traffic_manager/#_9","text":"\u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h .","title":"\u4eff\u771f \u72b6\u6001"},{"location":"adv_traffic_manager/#_10","text":"\u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u63a7\u5236 \u5faa\u73af"},{"location":"adv_traffic_manager/#_11","text":"\u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp .","title":"\u5185\u5b58 \u5730\u56fe"},{"location":"adv_traffic_manager/#pbvt","text":"PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002","title":"PBVT"},{"location":"adv_traffic_manager/#pid","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp .","title":"PID \u63a7\u5236\u5668"},{"location":"adv_traffic_manager/#_12","text":"\u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u547d\u4ee4 \u6570\u7ec4"},{"location":"adv_traffic_manager/#_13","text":"","title":"\u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5"},{"location":"adv_traffic_manager/#1-","text":"\u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp .","title":"\u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5"},{"location":"adv_traffic_manager/#2-","text":"\u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp .","title":"\u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5"},{"location":"adv_traffic_manager/#-","text":"\u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp .","title":"\u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#4-","text":"\u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp .","title":"\u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5"},{"location":"adv_traffic_manager/#5-","text":"\u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp .","title":"\u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#_14","text":"","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_15","text":"TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002","title":"\u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f\u4e8b\u9879"},{"location":"adv_traffic_manager/#_16","text":"\u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 )","title":"\u521b\u5efa \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#autopilot","text":"\u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False )","title":"\u914d\u7f6e autopilot \u884c\u4e3a"},{"location":"adv_traffic_manager/#_17","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002","title":"\u59d4\u6d3e \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f"},{"location":"adv_traffic_manager/#_18","text":"TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002","title":"\u505c\u6b62 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_19","text":"\u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u786e\u5b9a\u6027 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_20","text":"\u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002","title":"\u6df7\u5408 \u7269\u7406\u6a21\u5f0f"},{"location":"adv_traffic_manager/#_21","text":"","title":"\u8fd0\u884c \u591a\u4e2a \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_22","text":"Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef \u548c \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_23","text":"\u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 )","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef"},{"location":"adv_traffic_manager/#_24","text":"\u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_25","text":"\u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client","title":"\u591a \u5ba2\u6237\u7aef \u4eff\u771f"},{"location":"adv_traffic_manager/#_26","text":"\u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B","title":"\u591a \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f"},{"location":"adv_traffic_manager/#_27","text":"\u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002","title":"\u591a\u91cd \u4eff\u771f"},{"location":"adv_traffic_manager/#_28","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_29","text":"\u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"bp_library/","text":"\u84dd \u56fe\u5e93 \u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002 \u63a7\u5236 \u63a7\u5236\u5668 controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 vehicle vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 walker walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_1","text":"\u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_2","text":"controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u63a7\u5236\u5668"},{"location":"bp_library/#_3","text":"sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u4f20\u611f\u5668"},{"location":"bp_library/#static","text":"static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539","title":"static"},{"location":"bp_library/#vehicle","text":"vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539","title":"vehicle"},{"location":"bp_library/#walker","text":"walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"walker"},{"location":"build_carla/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u6784\u5efa Carla"},{"location":"build_carla/#carla","text":"\u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa Carla"},{"location":"build_docker/","text":"Docker \u4e2d \u7684 Carla \u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002 \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla 1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#docker-carla","text":"\u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker/#carla","text":"1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla"},{"location":"build_docker/#_2","text":"\u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"build_docker_unreal/","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u8f6f\u4ef6 \u8981\u6c42 Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla \u6784\u5efa \u955c\u50cf \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name > \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#docker-carla","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#_1","text":"","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker_unreal/#_2","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_docker_unreal/#_3","text":"Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_docker_unreal/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name >","title":"\u6784\u5efa \u955c\u50cf"},{"location":"build_docker_unreal/#_5","text":"\u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u4e0b \u4e00\u6b65 \uff1a \u6253\u5305"},{"location":"build_faq/","text":"\u5e38\u95ee \u7684 \u95ee\u9898 \u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla ' \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . \u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002 Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 CarlaUE4 could not be compiled . Try rebuilding it from source manually . \u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \" \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 \u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002 Error C2440 , C2672 : compiler version . \u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform > \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002 Modules are missing or built with a different engine version . \u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002 \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value ) \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002 ImportError : DLL load failed : The specified module could not be found . \u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002 ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . 32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002 ImportError : No module named ' carla ' \u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002 \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002 \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_1","text":"\u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_2","text":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#linux","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" .","title":"Linux \u6784\u5efa"},{"location":"build_faq/#windows","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939","title":"Windows \u6784\u5efa"},{"location":"build_faq/#carla","text":"\u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla '","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#_3","text":"Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f","title":"\u5176\u4ed6"},{"location":"build_faq/#_4","text":"","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#carla_1","text":"\u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002","title":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8\u7a7a\u95f4 \u3002"},{"location":"build_faq/#carla_2","text":"Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002","title":"\u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002"},{"location":"build_faq/#linux_1","text":"","title":"Linux \u6784\u5efa"},{"location":"build_faq/#github-carlaue4sh","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002"},{"location":"build_faq/#make-launch-linux","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Linux \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#_5","text":"1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git","title":"\u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002"},{"location":"build_faq/#attributeerror-module-carla-has-no-attribute-client-when-running-a-script","text":"\u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs","title":"AttributeError : module ' carla ' has no attribute ' Client ' when running a script ."},{"location":"build_faq/#runtimeerror-rpcrpc_error-during-call-in-function-version","text":"\u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" ."},{"location":"build_faq/#windows_1","text":"","title":"Windows \u6784\u5efa"},{"location":"build_faq/#github-carlaue4exe","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002"},{"location":"build_faq/#carlaue4-could-not-be-compiled-try-rebuilding-it-from-source-manually","text":"\u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \"","title":"CarlaUE4 could not be compiled . Try rebuilding it from source manually ."},{"location":"build_faq/#cmake-cmake","text":"\u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002","title":"\u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002"},{"location":"build_faq/#error-c2440-c2672-compiler-version","text":"\u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform >","title":"Error C2440 , C2672 : compiler version ."},{"location":"build_faq/#make-launch-windows","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Windows \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#make-libintl3dll-libiconv2dll","text":"\u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002","title":"Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002"},{"location":"build_faq/#modules-are-missing-or-built-with-a-different-engine-version","text":"\u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002","title":"Modules are missing or built with a different engine version ."},{"location":"build_faq/#pythonapicarladist","text":"\u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002","title":"\u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6\u5939 \u3002"},{"location":"build_faq/#osm2odr-visualstudio","text":"CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt","title":"osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9"},{"location":"build_faq/#_6","text":"carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value )","title":"\u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9"},{"location":"build_faq/#osm2odrlib","text":"fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002","title":"\u94fe\u63a5 \u4e0d\u5230 osm2odr . lib"},{"location":"build_faq/#carla_3","text":"","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#fps","text":"\u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002"},{"location":"build_faq/#_7","text":"\u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002"},{"location":"build_faq/#_8","text":"\u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f\u5668 \u3002"},{"location":"build_faq/#carla_4","text":"NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba\u662f \u4e8c\u8fdb\u5236 \u8fd8\u662f \u6e90\u4ee3\u7801 \u6784\u5efa \u3002"},{"location":"build_faq/#importerror-dll-load-failed-the-specified-module-could-not-be-found","text":"\u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002","title":"ImportError : DLL load failed : The specified module could not be found ."},{"location":"build_faq/#importerror-dll-load-failed-while-importing-libcarla-1-is-not-a-valid-win32-app","text":"32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002","title":"ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app ."},{"location":"build_faq/#importerror-no-module-named-carla","text":"\u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002","title":"ImportError : No module named ' carla '"},{"location":"build_faq/#_9","text":"","title":"\u5176\u4ed6"},{"location":"build_faq/#fatal-error-versionh-has-been-modified-since-the-precompiled-header","text":"\u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor","title":"Fatal error : ' version . h ' has been modified since the precompiled header ."},{"location":"build_faq/#carla_5","text":"\u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002","title":"\u521b\u5efa Carla \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002"},{"location":"build_faq/#linux-windows-carla","text":"\u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002","title":"\u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f"},{"location":"build_faq/#carla_6","text":"\u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237\u7aef \u5e93 \uff1f"},{"location":"build_linux/","text":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get update && sudo apt - get install wget software - properties - common && sudo add - apt - repository ppa : ubuntu - toolchain - r / test && wget - O - https : / / apt . llvm . org / llvm - snapshot . gpg . key | sudo apt - key add - && sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD ) \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002 \u514b\u9686 Carla \u4ed3\u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002 \u5176\u4ed6 make \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \u5176\u4ed6 v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Linux \u4e0a \u7f16\u8bd1"},{"location":"build_linux/#linux","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa"},{"location":"build_linux/#_1","text":"","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_linux/#_2","text":"Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_linux/#_3","text":"Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get update && sudo apt - get install wget software - properties - common && sudo add - apt - repository ppa : ubuntu - toolchain - r / test && wget - O - https : / / apt . llvm . org / llvm - snapshot . gpg . key | sudo apt - key add - && sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_linux/#_4","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD )","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_linux/#carla","text":"\u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_linux/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u4ed3\u5e93"},{"location":"build_linux/#_5","text":"\u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_linux/#_6","text":"\u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883\u53d8\u91cf"},{"location":"build_linux/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002","title":"\u6784\u5efa Carla"},{"location":"build_linux/#make","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002","title":"\u5176\u4ed6 make \u547d\u4ee4"},{"location":"build_linux/#_7","text":"v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5176\u4ed6"},{"location":"build_system/","text":"\u6784\u5efa \u7cfb\u7edf \u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002 \u8bbe\u7f6e \u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ ) LibCarla \u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a Required by Carla plugin PythonAPI CarlaUE4 \u548c Carla \u63d2\u4ef6 \u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002 PythonAPI 0.9 . 12 + \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"\u7f16\u8bd1\u7cfb\u7edf"},{"location":"build_system/#_1","text":"\u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002","title":"\u6784\u5efa \u7cfb\u7edf"},{"location":"build_system/#_2","text":"\u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ )","title":"\u8bbe\u7f6e"},{"location":"build_system/#libcarla","text":"\u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a Required by Carla plugin PythonAPI","title":"LibCarla"},{"location":"build_system/#carlaue4-carla","text":"\u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002","title":"CarlaUE4 \u548c Carla \u63d2\u4ef6"},{"location":"build_system/#pythonapi","text":"","title":"PythonAPI"},{"location":"build_system/#0912","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"0.9 . 12 + \u7248\u672c"},{"location":"build_system/#0912_1","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c"},{"location":"build_update/","text":"\u66f4\u65b0 Carla \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master \u6e05\u7406 \u6784\u5efa \u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean \u4ece origin \u62c9\u53d6 \u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master \u4e0b\u8f7d \u8d44\u4ea7 Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch \u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7 Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"Carla \u66f4\u65b0"},{"location":"build_update/#carla","text":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b","title":"\u66f4\u65b0 Carla"},{"location":"build_update/#_1","text":"\u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla","title":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981"},{"location":"build_update/#_2","text":"\u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build","title":"\u83b7\u53d6 \u6700\u65b0 \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c"},{"location":"build_update/#linux-windows","text":"\u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master","title":"\u66f4\u65b0 Linux \u548c Windows \u6784\u5efa"},{"location":"build_update/#_3","text":"\u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean","title":"\u6e05\u7406 \u6784\u5efa"},{"location":"build_update/#origin","text":"\u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master","title":"\u4ece origin \u62c9\u53d6"},{"location":"build_update/#_4","text":"Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002","title":"\u4e0b\u8f7d \u8d44\u4ea7"},{"location":"build_update/#_5","text":"\u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch","title":"\u542f\u52a8 \u670d\u52a1\u5668"},{"location":"build_update/#_6","text":"Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"\u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7"},{"location":"build_windows/","text":"Windows \u4e0b \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u7cfb\u7edf \u8981\u6c42 64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002 Python \u4f9d\u8d56 \u9879 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002 \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u5b58\u50a8 \u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf \u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002 \u5176\u4ed6 \u6784\u5efa \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6784\u5efa \u4e86 Carla \uff0c \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u4e86\u89e3 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Windows \u4e0a \u7f16\u8bd1"},{"location":"build_windows/#windows","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Windows \u4e0b \u7684 \u6784\u5efa"},{"location":"build_windows/#_1","text":"\u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_windows/#_2","text":"64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_windows/#_3","text":"","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_windows/#_4","text":"CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002","title":"\u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#python","text":"\u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel","title":"Python \u4f9d\u8d56 \u9879"},{"location":"build_windows/#_5","text":"","title":"\u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#visual-studio-2019","text":"\u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002","title":"Visual Studio 2019"},{"location":"build_windows/#_6","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_windows/#carla","text":"","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_windows/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u5b58\u50a8 \u5e93"},{"location":"build_windows/#_7","text":"\u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_windows/#_8","text":"\u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf"},{"location":"build_windows/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002","title":"\u6784\u5efa Carla"},{"location":"build_windows/#_9","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \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":"\u5176\u4ed6 \u6784\u5efa \u547d\u4ee4"},{"location":"carla_ackermann_control/","text":"Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u914d\u7f6e \u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002 \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#carla","text":"carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#_1","text":"\u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002","title":"\u914d\u7f6e"},{"location":"carla_ackermann_control/#_2","text":"\u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10","title":"\u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f"},{"location":"carla_ackermann_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ackermann_control/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005","title":"\u8ba2\u9605"},{"location":"carla_ackermann_control/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#carla","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002","title":"\u9700\u6c42"},{"location":"carla_ad_agent/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ad_agent/#_2","text":"","title":"\u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9"},{"location":"carla_ad_agent/#_3","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_5","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/#_6","text":"","title":"\u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9"},{"location":"carla_ad_agent/#_7","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_8","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_9","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"\u53d1\u5e03"},{"location":"carla_ad_demo/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner > \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py \u573a\u666f \u6267\u884c \u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#carla","text":"\u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#_1","text":"\u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner >","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ad_demo/#_2","text":"","title":"\u8fd0\u884c \u6f14\u793a"},{"location":"carla_ad_demo/#_3","text":"\u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py","title":"\u968f\u673a \u8def\u7ebf"},{"location":"carla_ad_demo/#_4","text":"\u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"\u573a\u666f \u6267\u884c"},{"location":"carla_manual_control/","text":"Carla \u624b\u52a8 \u63a7\u5236 CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd0\u884c \u5305 \u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#carla","text":"CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u9700\u6c42"},{"location":"carla_manual_control/#_2","text":"\u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py","title":"\u8fd0\u884c \u5305"},{"location":"carla_ros_scenario_runner/","text":"Carla ROS Scenario Runner The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect \u4f7f\u7528 ROS Scenario Runner ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002 \u8fd0\u884c ROS Scenario Runner 1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#carla-ros-scenario-runner","text":"The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#_1","text":"\u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner","text":"ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002","title":"\u4f7f\u7528 ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner_1","text":"1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \"","title":"\u8fd0\u884c ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ros_scenario_runner/#_2","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002","title":"\u670d\u52a1"},{"location":"carla_ros_scenario_runner/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_spawn_objects/","text":"Carla \u751f\u6210 \u5bf9\u8c61 carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json \u521b\u5efa \u914d\u7f6e \u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u751f\u6210 \u8f66\u8f86 \u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , } \u8f66\u8f86 \u518d \u751f\u6210 \u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#carla","text":"carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#_1","text":"\u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json","title":"\u914d\u7f6e \u548c \u4f20\u611f\u5668 \u8bbe\u7f6e"},{"location":"carla_spawn_objects/#_2","text":"\u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002","title":"\u521b\u5efa \u914d\u7f6e"},{"location":"carla_spawn_objects/#_3","text":"\u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , }","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"carla_spawn_objects/#_4","text":"\u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002","title":"\u8f66\u8f86 \u518d \u751f\u6210"},{"location":"carla_spawn_objects/#_5","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002","title":"\u751f\u6210 \u4f20\u611f\u5668"},{"location":"carla_spawn_objects/#_6","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"\u5c06 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a"},{"location":"carla_twist_to_control/","text":"Carla \u626d\u8f6c \u63a7\u5236 carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#carla","text":"carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_twist_to_control/#_1","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002","title":"\u8ba2\u9605"},{"location":"carla_twist_to_control/#_2","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"\u53d1\u5e03"},{"location":"carla_waypoint/","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py \u8bbe\u5b9a \u76ee\u6807 \u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#carla","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_1","text":"\u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py","title":"\u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_2","text":"\u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002","title":"\u8bbe\u5b9a \u76ee\u6807"},{"location":"carla_waypoint/#_3","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_waypoint/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf","title":"\u53d1\u5e03"},{"location":"carla_waypoint/#_5","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"\u670d\u52a1"},{"location":"catalogue/","text":"Carla \u76ee\u5f55 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55 \u5730\u56fe Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u8f66\u8f86 Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002 \u884c\u4eba Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002 \u9053\u5177 Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002","title":"\u5730\u56fe"},{"location":"catalogue/#_2","text":"Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002","title":"\u8f66\u8f86"},{"location":"catalogue/#_3","text":"Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002","title":"\u884c\u4eba"},{"location":"catalogue/#_4","text":"Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"\u9053\u5177"},{"location":"catalogue_pedestrians/","text":"\u884c\u4eba \u76ee\u5f55 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2 \u5c0f\u5b69 \u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1 \u8b66\u5bdf \u8b66\u5bdf - 1 \u8b66\u5bdf - 2 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0001 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0005 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0006 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0007 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5 \u84dd\u56fe ID : walker . pedestrian.0008 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0004 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0003 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0002 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0015 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0019 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0016 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0017 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0026 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0018 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0021 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0020 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0023 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0022 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0024 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0025 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0027 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0029 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0028 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0041 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0040 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0033 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0031 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0034 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0038 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0035 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0036 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0037 \u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0039 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0042 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0043 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0044 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0047 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0046 Children Child pedestrian 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0011 Child pedestrian 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0010 Child pedestrian 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0009 Child pedestrian 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0014 Child pedestrian 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0013 Child pedestrian 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0012 Child pedestrian 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0048 Child pedestrian 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0049 \u8b66\u5bdf \u8b66\u5bdf 1 \u84dd\u56fe ID : walker . pedestrian.0030 \u8b66\u5bdf 2 \u84dd\u56fe ID : walker . pedestrian.0032","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_1","text":"","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_2","text":"\u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#_3","text":"\u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1","title":"\u5c0f\u5b69"},{"location":"catalogue_pedestrians/#_4","text":"\u8b66\u5bdf - 1 \u8b66\u5bdf - 2","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#_5","text":"","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0001","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0005","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0006","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#1-4","text":"\u84dd\u56fe ID : walker . pedestrian.0007","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#1-5","text":"\u84dd\u56fe ID : walker . pedestrian.0008","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5"},{"location":"catalogue_pedestrians/#2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0004","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0003","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0002","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0015","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#3-2","text":"\u84dd\u56fe ID : walker . pedestrian.0019","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0016","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#4-2","text":"\u84dd\u56fe ID : walker . pedestrian.0017","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#5-1","text":"\u84dd\u56fe ID : walker . pedestrian.0026","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#5-2","text":"\u84dd\u56fe ID : walker . pedestrian.0018","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#6-1","text":"\u84dd\u56fe ID : walker . pedestrian.0021","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#6-2","text":"\u84dd\u56fe ID : walker . pedestrian.0020","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#7-1","text":"\u84dd\u56fe ID : walker . pedestrian.0023","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#7-2","text":"\u84dd\u56fe ID : walker . pedestrian.0022","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#8-1","text":"\u84dd\u56fe ID : walker . pedestrian.0024","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#8-2","text":"\u84dd\u56fe ID : walker . pedestrian.0025","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-1","text":"\u84dd\u56fe ID : walker . pedestrian.0027","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#9-2","text":"\u84dd\u56fe ID : walker . pedestrian.0029","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-3","text":"\u84dd\u56fe ID : walker . pedestrian.0028","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-1","text":"\u84dd\u56fe ID : walker . pedestrian.0041","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#10-2","text":"\u84dd\u56fe ID : walker . pedestrian.0040","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#10-3","text":"\u84dd\u56fe ID : walker . pedestrian.0033","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-4","text":"\u84dd\u56fe ID : walker . pedestrian.0031","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#11-1","text":"\u84dd\u56fe ID : walker . pedestrian.0034","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#11-2","text":"\u84dd\u56fe ID : walker . pedestrian.0038","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-1","text":"\u84dd\u56fe ID : walker . pedestrian.0035","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#12-2","text":"\u84dd\u56fe ID : walker . pedestrian.0036","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-3","text":"\u84dd\u56fe ID : walker . pedestrian.0037","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#13-1","text":"\u84dd\u56fe ID : walker . pedestrian.0039","title":"\u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-1","text":"\u84dd\u56fe ID : walker . pedestrian.0042","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-2","text":"\u84dd\u56fe ID : walker . pedestrian.0043","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#14-3","text":"\u84dd\u56fe ID : walker . pedestrian.0044","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#15-1","text":"\u84dd\u56fe ID : walker . pedestrian.0047","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#15-2","text":"\u84dd\u56fe ID : walker . pedestrian.0046","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#children","text":"","title":"Children"},{"location":"catalogue_pedestrians/#child-pedestrian-1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0011","title":"Child pedestrian 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0010","title":"Child pedestrian 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0009","title":"Child pedestrian 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0014","title":"Child pedestrian 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0013","title":"Child pedestrian 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0012","title":"Child pedestrian 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0048","title":"Child pedestrian 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0049","title":"Child pedestrian 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#_6","text":"","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#1","text":"\u84dd\u56fe ID : walker . pedestrian.0030","title":"\u8b66\u5bdf 1"},{"location":"catalogue_pedestrians/#2","text":"\u84dd\u56fe ID : walker . pedestrian.0032","title":"\u8b66\u5bdf 2"},{"location":"catalogue_props/","text":"\u9053\u5177 \u76ee\u5f55 \u5bb9\u5668 \u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03 \u5783\u573e \u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05 \u516c\u56ed / \u82b1\u56ed \u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08 \u4e2a\u4eba \u7684 \u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305 \u8def \u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u516c\u7528 \u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668 \u5bb9\u5668 \u6876 \u84dd\u56fe ID : static . prop . barrel \u5783\u573e \u5783\u573e\u6876 \u84dd\u56fe ID : static . prop . bin \u5e03\u5236 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . clothcontainer \u5783\u573e \u5783\u573e\u7bb1 \u84dd\u56fe ID : static . prop . container \u73bb\u7483 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . glasscontainer \u76d2\u5b50 01 \u84dd\u56fe ID : static . prop . box01 \u76d2\u5b50 02 \u84dd\u56fe ID : static . prop . box02 \u76d2\u5b50 03 \u84dd\u56fe ID : static . prop . box03 \u6298\u75d5 \u76d2 01 \u84dd\u56fe ID : static . prop . creasedbox01 \u6298\u75d5 \u76d2 02 \u84dd\u56fe ID : static . prop . creasedbox02 \u6298\u75d5 \u76d2 03 \u84dd\u56fe ID : static . prop . creasedbox03 \u5783\u573e \u5783\u573e \u5783\u573e\u888b \u84dd\u56fe ID : static . prop . trashbag \u53ef\u4e50 \u7f50 \u84dd\u56fe ID : static . prop . colacan \u5783\u573e 01 \u84dd\u56fe ID : static . prop . garbage01 \u5783\u573e 02 \u84dd\u56fe ID : static . prop . garbage02 \u5783\u573e 03 \u84dd\u56fe ID : static . prop . garbage03 \u5783\u573e 04 \u84dd\u56fe ID : static . prop . garbage04 \u5783\u573e 05 \u84dd\u56fe ID : static . prop . garbage05 \u5783\u573e 06 \u84dd\u56fe ID : static . prop . garbage06 \u5783\u573e \u5e73\u53f0 01 \u84dd\u56fe ID : static . prop . platformgarbage01 \u5783\u573e \u5783\u573e\u6876 01 \u84dd\u56fe ID : static . prop . trashcan01 \u5783\u573e \u5783\u573e\u6876 02 \u84dd\u56fe ID : static . prop . trashcan02 \u5783\u573e \u5783\u573e\u6876 03 \u84dd\u56fe ID : static . prop . trashcan03 \u5783\u573e \u5783\u573e\u6876 04 \u84dd\u56fe ID : static . prop . trashcan04 \u5783\u573e \u5783\u573e\u6876 05 \u84dd\u56fe ID : static . prop . trashcan05 \u516c\u56ed / \u82b1\u56ed \u957f\u51f3 03 \u84dd\u56fe ID : static . prop . bench03 \u5ead\u9662 \u5ead\u9662\u706f \u84dd\u56fe ID : static . prop . gardenlamp \u51c9\u68da \u84dd\u56fe ID : static . prop . pergola \u5851\u6599 \u6905 \u84dd\u56fe ID : static . prop . plasticchair \u5851\u6599 \u684c \u84dd\u56fe ID : static . prop . plastictable \u6ed1\u68af \u84dd\u56fe ID : static . prop . slide \u79cb\u5343 \u84dd\u56fe ID : static . prop . swing \u79cb\u5343 \u6c99\u53d1 \u84dd\u56fe ID : static . prop . swingcouch \u684c\u5b50 \u84dd\u56fe ID : static . prop . table \u8e66\u5e8a \u84dd\u56fe ID : static . prop . trampoline \u70e7\u70e4 \u67b6 \u84dd\u56fe ID : static . prop . barbeque \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u84dd\u56fe ID : static . prop . clothesline \u72d7\u7a9d \u84dd\u56fe ID : static . prop . doghouse \u4f8f\u5112 \u84dd\u56fe ID : static . prop . gnome \u55b7\u58f6 \u84dd\u56fe ID : static . prop . wateringcan \u5e72\u8349 \u6346 \u84dd\u56fe ID : static . prop . haybale \u5e72\u8349 \u6346 \u5907\u7528 \u84dd\u56fe ID : static . prop . haybalelb \u82b1\u76c6 01 \u84dd\u56fe ID : static . prop . plantpot01 \u82b1\u76c6 02 \u84dd\u56fe ID : static . prop . plantpot02 \u82b1\u76c6 03 \u84dd\u56fe ID : static . prop . plantpot03 \u82b1\u76c6 04 \u84dd\u56fe ID : static . prop . plantpot04 \u82b1\u76c6 05 \u84dd\u56fe ID : static . prop . plantpot05 \u82b1\u76c6 06 \u84dd\u56fe ID : static . prop . plantpot06 \u82b1\u76c6 07 \u84dd\u56fe ID : static . prop . plantpot07 \u82b1\u76c6 08 \u84dd\u56fe ID : static . prop . plantpot08 \u4e2a\u4eba \u7684 \u5851\u6599 \u5851\u6599\u888b \u84dd\u56fe ID : static . prop . plasticbag \u8d2d\u7269 \u8d2d\u7269\u888b \u84dd\u56fe ID : static . prop . shoppingbag \u8d2d\u7269 \u8d2d\u7269\u8f66 \u84dd\u56fe ID : static . prop . shoppingcart \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u84dd\u56fe ID : static . prop . shoppingtrolley \u516c\u6587 \u516c\u6587\u5305 \u84dd\u56fe ID : static . prop . briefcase \u5409\u4ed6 \u76d2 \u84dd\u56fe ID : static . prop . guitarcase \u65c5\u884c \u65c5\u884c\u7bb1 \u84dd\u56fe ID : static . prop . travelcase \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . bike helmet \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . motorhelmet \u624b\u673a \u84dd\u56fe ID : static . prop . mobile \u94b1\u5305 \u84dd\u56fe ID : static . prop . purse \u8def \u8857\u9053 \u62a4\u680f \u84dd\u56fe ID : static . prop . streetbarrier \u5efa\u7b51 \u9525\u4f53 \u84dd\u56fe ID : static . prop . constructioncone \u4ea4\u901a \u9525 01 \u84dd\u56fe ID : static . prop . trafficcone01 \u4ea4\u901a \u9525 02 \u84dd\u56fe ID : static . prop . trafficcone02 \u94c1\u677f \u84dd\u56fe ID : static . prop . ironplank \u65bd\u5de5 \u8b66\u793a \u84dd\u56fe ID : static . prop . warningconstruction \u788e\u74e6 01 \u84dd\u56fe ID : static . prop . brokentile01 \u788e\u74e6 02 \u84dd\u56fe ID : static . prop . brokentile02 \u788e\u74e6 03 \u84dd\u56fe ID : static . prop . brokentile03 \u788e\u74e6 04 \u84dd\u56fe ID : static . prop . brokentile04 \u6c61\u57a2 / \u788e\u7247 01 \u84dd\u56fe ID : static . prop . dirtdebris01 \u6c61\u57a2 / \u788e\u7247 02 \u84dd\u56fe ID : static . prop . dirtdebris02 \u6c61\u57a2 / \u788e\u7247 03 \u84dd\u56fe ID : static . prop . dirtdebris03 \u4ea4\u901a \u8b66\u544a \u84dd\u56fe ID : static . prop . trafficwarning \u4e8b\u6545 \u8b66\u544a \u84dd\u56fe ID : static . prop . warningaccident \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u94fe \u6805\u680f \u84dd\u56fe ID : static . prop . chainbarrier \u94fe \u6805\u680f \u672b\u7aef \u84dd\u56fe ID : static . prop . chainbarrierend \u957f\u51f3 01 \u84dd\u56fe ID : static . prop . bench01 \u957f\u51f3 02 \u84dd\u56fe ID : static . prop . bench02 \u9910\u8f66 \u84dd\u56fe ID : static . prop . foodcart \u4fe1\u606f \u4ead 01 \u84dd\u56fe ID : static . prop . kiosk _ 01 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . fountain \u5730 \u56fe\u8868 \u84dd\u56fe ID : static . prop . maptable \u5e7f\u544a \u84dd\u56fe ID : static . prop . advertisement \u8def\u724c \u84dd\u56fe ID : static . prop . streetsign \u8def\u724c 01 \u84dd\u56fe ID : static . prop . streetsign01 \u8def\u724c 04 \u84dd\u56fe ID : static . prop . streetsign04 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstop \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstoplb \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u84dd\u56fe ID : static . prop . atm \u90ae\u7bb1 \u84dd\u56fe ID : static . prop . mailbox \u8857\u5934 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . streetfountain \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u84dd\u56fe ID : static . prop . vendingmachine \u516c\u7528 \u6821\u51c6 \u6821\u51c6\u5668 \u84dd\u56fe ID : static . prop . calibrator","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_1","text":"","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_2","text":"\u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_3","text":"\u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05","title":"\u5783\u573e"},{"location":"catalogue_props/#_4","text":"\u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#_5","text":"\u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_6","text":"\u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a","title":"\u8def"},{"location":"catalogue_props/#_7","text":"\u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_8","text":"\u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668","title":"\u516c\u7528"},{"location":"catalogue_props/#_9","text":"","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_10","text":"\u84dd\u56fe ID : static . prop . barrel","title":"\u6876"},{"location":"catalogue_props/#_11","text":"\u84dd\u56fe ID : static . prop . bin","title":"\u5783\u573e\u6876"},{"location":"catalogue_props/#_12","text":"\u84dd\u56fe ID : static . prop . clothcontainer","title":"\u5e03\u5236 \u5bb9\u5668"},{"location":"catalogue_props/#_13","text":"\u84dd\u56fe ID : static . prop . container","title":"\u5783\u573e\u7bb1"},{"location":"catalogue_props/#_14","text":"\u84dd\u56fe ID : static . prop . glasscontainer","title":"\u73bb\u7483 \u5bb9\u5668"},{"location":"catalogue_props/#01","text":"\u84dd\u56fe ID : static . prop . box01","title":"\u76d2\u5b50 01"},{"location":"catalogue_props/#02","text":"\u84dd\u56fe ID : static . prop . box02","title":"\u76d2\u5b50 02"},{"location":"catalogue_props/#03","text":"\u84dd\u56fe ID : static . prop . box03","title":"\u76d2\u5b50 03"},{"location":"catalogue_props/#01_1","text":"\u84dd\u56fe ID : static . prop . creasedbox01","title":"\u6298\u75d5 \u76d2 01"},{"location":"catalogue_props/#02_1","text":"\u84dd\u56fe ID : static . prop . creasedbox02","title":"\u6298\u75d5 \u76d2 02"},{"location":"catalogue_props/#03_1","text":"\u84dd\u56fe ID : static . prop . creasedbox03","title":"\u6298\u75d5 \u76d2 03"},{"location":"catalogue_props/#_15","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_16","text":"\u84dd\u56fe ID : static . prop . trashbag","title":"\u5783\u573e\u888b"},{"location":"catalogue_props/#_17","text":"\u84dd\u56fe ID : static . prop . colacan","title":"\u53ef\u4e50 \u7f50"},{"location":"catalogue_props/#01_2","text":"\u84dd\u56fe ID : static . prop . garbage01","title":"\u5783\u573e 01"},{"location":"catalogue_props/#02_2","text":"\u84dd\u56fe ID : static . prop . garbage02","title":"\u5783\u573e 02"},{"location":"catalogue_props/#03_2","text":"\u84dd\u56fe ID : static . prop . garbage03","title":"\u5783\u573e 03"},{"location":"catalogue_props/#04","text":"\u84dd\u56fe ID : static . prop . garbage04","title":"\u5783\u573e 04"},{"location":"catalogue_props/#05","text":"\u84dd\u56fe ID : static . prop . garbage05","title":"\u5783\u573e 05"},{"location":"catalogue_props/#06","text":"\u84dd\u56fe ID : static . prop . garbage06","title":"\u5783\u573e 06"},{"location":"catalogue_props/#01_3","text":"\u84dd\u56fe ID : static . prop . platformgarbage01","title":"\u5783\u573e \u5e73\u53f0 01"},{"location":"catalogue_props/#01_4","text":"\u84dd\u56fe ID : static . prop . trashcan01","title":"\u5783\u573e\u6876 01"},{"location":"catalogue_props/#02_3","text":"\u84dd\u56fe ID : static . prop . trashcan02","title":"\u5783\u573e\u6876 02"},{"location":"catalogue_props/#03_3","text":"\u84dd\u56fe ID : static . prop . trashcan03","title":"\u5783\u573e\u6876 03"},{"location":"catalogue_props/#04_1","text":"\u84dd\u56fe ID : static . prop . trashcan04","title":"\u5783\u573e\u6876 04"},{"location":"catalogue_props/#05_1","text":"\u84dd\u56fe ID : static . prop . trashcan05","title":"\u5783\u573e\u6876 05"},{"location":"catalogue_props/#_18","text":"","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#03_4","text":"\u84dd\u56fe ID : static . prop . bench03","title":"\u957f\u51f3 03"},{"location":"catalogue_props/#_19","text":"\u84dd\u56fe ID : static . prop . gardenlamp","title":"\u5ead\u9662\u706f"},{"location":"catalogue_props/#_20","text":"\u84dd\u56fe ID : static . prop . pergola","title":"\u51c9\u68da"},{"location":"catalogue_props/#_21","text":"\u84dd\u56fe ID : static . prop . plasticchair","title":"\u5851\u6599 \u6905"},{"location":"catalogue_props/#_22","text":"\u84dd\u56fe ID : static . prop . plastictable","title":"\u5851\u6599 \u684c"},{"location":"catalogue_props/#_23","text":"\u84dd\u56fe ID : static . prop . slide","title":"\u6ed1\u68af"},{"location":"catalogue_props/#_24","text":"\u84dd\u56fe ID : static . prop . swing","title":"\u79cb\u5343"},{"location":"catalogue_props/#_25","text":"\u84dd\u56fe ID : static . prop . swingcouch","title":"\u79cb\u5343 \u6c99\u53d1"},{"location":"catalogue_props/#_26","text":"\u84dd\u56fe ID : static . prop . table","title":"\u684c\u5b50"},{"location":"catalogue_props/#_27","text":"\u84dd\u56fe ID : static . prop . trampoline","title":"\u8e66\u5e8a"},{"location":"catalogue_props/#_28","text":"\u84dd\u56fe ID : static . prop . barbeque","title":"\u70e7\u70e4 \u67b6"},{"location":"catalogue_props/#_29","text":"\u84dd\u56fe ID : static . prop . clothesline","title":"\u667e\u8863\u7ef3"},{"location":"catalogue_props/#_30","text":"\u84dd\u56fe ID : static . prop . doghouse","title":"\u72d7\u7a9d"},{"location":"catalogue_props/#_31","text":"\u84dd\u56fe ID : static . prop . gnome","title":"\u4f8f\u5112"},{"location":"catalogue_props/#_32","text":"\u84dd\u56fe ID : static . prop . wateringcan","title":"\u55b7\u58f6"},{"location":"catalogue_props/#_33","text":"\u84dd\u56fe ID : static . prop . haybale","title":"\u5e72\u8349 \u6346"},{"location":"catalogue_props/#_34","text":"\u84dd\u56fe ID : static . prop . haybalelb","title":"\u5e72\u8349 \u6346 \u5907\u7528"},{"location":"catalogue_props/#01_5","text":"\u84dd\u56fe ID : static . prop . plantpot01","title":"\u82b1\u76c6 01"},{"location":"catalogue_props/#02_4","text":"\u84dd\u56fe ID : static . prop . plantpot02","title":"\u82b1\u76c6 02"},{"location":"catalogue_props/#03_5","text":"\u84dd\u56fe ID : static . prop . plantpot03","title":"\u82b1\u76c6 03"},{"location":"catalogue_props/#04_2","text":"\u84dd\u56fe ID : static . prop . plantpot04","title":"\u82b1\u76c6 04"},{"location":"catalogue_props/#05_2","text":"\u84dd\u56fe ID : static . prop . plantpot05","title":"\u82b1\u76c6 05"},{"location":"catalogue_props/#06_1","text":"\u84dd\u56fe ID : static . prop . plantpot06","title":"\u82b1\u76c6 06"},{"location":"catalogue_props/#07","text":"\u84dd\u56fe ID : static . prop . plantpot07","title":"\u82b1\u76c6 07"},{"location":"catalogue_props/#08","text":"\u84dd\u56fe ID : static . prop . plantpot08","title":"\u82b1\u76c6 08"},{"location":"catalogue_props/#_35","text":"","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_36","text":"\u84dd\u56fe ID : static . prop . plasticbag","title":"\u5851\u6599\u888b"},{"location":"catalogue_props/#_37","text":"\u84dd\u56fe ID : static . prop . shoppingbag","title":"\u8d2d\u7269\u888b"},{"location":"catalogue_props/#_38","text":"\u84dd\u56fe ID : static . prop . shoppingcart","title":"\u8d2d\u7269\u8f66"},{"location":"catalogue_props/#_39","text":"\u84dd\u56fe ID : static . prop . shoppingtrolley","title":"\u8d2d\u7269 \u624b\u63a8\u8f66"},{"location":"catalogue_props/#_40","text":"\u84dd\u56fe ID : static . prop . briefcase","title":"\u516c\u6587\u5305"},{"location":"catalogue_props/#_41","text":"\u84dd\u56fe ID : static . prop . guitarcase","title":"\u5409\u4ed6 \u76d2"},{"location":"catalogue_props/#_42","text":"\u84dd\u56fe ID : static . prop . travelcase","title":"\u65c5\u884c\u7bb1"},{"location":"catalogue_props/#_43","text":"\u84dd\u56fe ID : static . prop . bike helmet","title":"\u81ea\u884c\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_44","text":"\u84dd\u56fe ID : static . prop . motorhelmet","title":"\u6469\u6258\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_45","text":"\u84dd\u56fe ID : static . prop . mobile","title":"\u624b\u673a"},{"location":"catalogue_props/#_46","text":"\u84dd\u56fe ID : static . prop . purse","title":"\u94b1\u5305"},{"location":"catalogue_props/#_47","text":"","title":"\u8def"},{"location":"catalogue_props/#_48","text":"\u84dd\u56fe ID : static . prop . streetbarrier","title":"\u8857\u9053 \u62a4\u680f"},{"location":"catalogue_props/#_49","text":"\u84dd\u56fe ID : static . prop . constructioncone","title":"\u5efa\u7b51 \u9525\u4f53"},{"location":"catalogue_props/#01_6","text":"\u84dd\u56fe ID : static . prop . trafficcone01","title":"\u4ea4\u901a \u9525 01"},{"location":"catalogue_props/#02_5","text":"\u84dd\u56fe ID : static . prop . trafficcone02","title":"\u4ea4\u901a \u9525 02"},{"location":"catalogue_props/#_50","text":"\u84dd\u56fe ID : static . prop . ironplank","title":"\u94c1\u677f"},{"location":"catalogue_props/#_51","text":"\u84dd\u56fe ID : static . prop . warningconstruction","title":"\u65bd\u5de5 \u8b66\u793a"},{"location":"catalogue_props/#01_7","text":"\u84dd\u56fe ID : static . prop . brokentile01","title":"\u788e\u74e6 01"},{"location":"catalogue_props/#02_6","text":"\u84dd\u56fe ID : static . prop . brokentile02","title":"\u788e\u74e6 02"},{"location":"catalogue_props/#03_6","text":"\u84dd\u56fe ID : static . prop . brokentile03","title":"\u788e\u74e6 03"},{"location":"catalogue_props/#04_3","text":"\u84dd\u56fe ID : static . prop . brokentile04","title":"\u788e\u74e6 04"},{"location":"catalogue_props/#01_8","text":"\u84dd\u56fe ID : static . prop . dirtdebris01","title":"\u6c61\u57a2 / \u788e\u7247 01"},{"location":"catalogue_props/#02_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris02","title":"\u6c61\u57a2 / \u788e\u7247 02"},{"location":"catalogue_props/#03_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris03","title":"\u6c61\u57a2 / \u788e\u7247 03"},{"location":"catalogue_props/#_52","text":"\u84dd\u56fe ID : static . prop . trafficwarning","title":"\u4ea4\u901a \u8b66\u544a"},{"location":"catalogue_props/#_53","text":"\u84dd\u56fe ID : static . prop . warningaccident","title":"\u4e8b\u6545 \u8b66\u544a"},{"location":"catalogue_props/#_54","text":"","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_55","text":"\u84dd\u56fe ID : static . prop . chainbarrier","title":"\u94fe \u6805\u680f"},{"location":"catalogue_props/#_56","text":"\u84dd\u56fe ID : static . prop . chainbarrierend","title":"\u94fe \u6805\u680f \u672b\u7aef"},{"location":"catalogue_props/#01_9","text":"\u84dd\u56fe ID : static . prop . bench01","title":"\u957f\u51f3 01"},{"location":"catalogue_props/#02_8","text":"\u84dd\u56fe ID : static . prop . bench02","title":"\u957f\u51f3 02"},{"location":"catalogue_props/#_57","text":"\u84dd\u56fe ID : static . prop . foodcart","title":"\u9910\u8f66"},{"location":"catalogue_props/#01_10","text":"\u84dd\u56fe ID : static . prop . kiosk _ 01","title":"\u4fe1\u606f \u4ead 01"},{"location":"catalogue_props/#_58","text":"\u84dd\u56fe ID : static . prop . fountain","title":"\u55b7\u6cc9"},{"location":"catalogue_props/#_59","text":"\u84dd\u56fe ID : static . prop . maptable","title":"\u5730 \u56fe\u8868"},{"location":"catalogue_props/#_60","text":"\u84dd\u56fe ID : static . prop . advertisement","title":"\u5e7f\u544a"},{"location":"catalogue_props/#_61","text":"\u84dd\u56fe ID : static . prop . streetsign","title":"\u8def\u724c"},{"location":"catalogue_props/#01_11","text":"\u84dd\u56fe ID : static . prop . streetsign01","title":"\u8def\u724c 01"},{"location":"catalogue_props/#04_4","text":"\u84dd\u56fe ID : static . prop . streetsign04","title":"\u8def\u724c 04"},{"location":"catalogue_props/#_62","text":"\u84dd\u56fe ID : static . prop . busstop","title":"\u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_63","text":"\u84dd\u56fe ID : static . prop . busstoplb","title":"\u5907\u7528 \u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_64","text":"\u84dd\u56fe ID : static . prop . atm","title":"\u81ea\u52a8 \u63d0\u6b3e\u673a"},{"location":"catalogue_props/#_65","text":"\u84dd\u56fe ID : static . prop . mailbox","title":"\u90ae\u7bb1"},{"location":"catalogue_props/#_66","text":"\u84dd\u56fe ID : static . prop . streetfountain","title":"\u8857\u5934 \u55b7\u6cc9"},{"location":"catalogue_props/#_67","text":"\u84dd\u56fe ID : static . prop . vendingmachine","title":"\u552e\u8d27\u673a"},{"location":"catalogue_props/#_68","text":"","title":"\u516c\u7528"},{"location":"catalogue_props/#_69","text":"\u84dd\u56fe ID : static . prop . calibrator","title":"\u6821\u51c6\u5668"},{"location":"catalogue_vehicles/","text":"\u8f66\u8f86 \u76ee\u5f55 \u7b2c 2 \u4ee3 \u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u7b2c\u4e00 \u4e00\u4ee3 \u7b2c\u4e00\u4ee3 \u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets \u68c0\u67e5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86 \u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( ) \u8f66 \u5965\u8fea - A2 \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - E - Tron \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - TT \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u4f5b\u5170 - Impala \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u94c1\u9f99 - C3 \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u9053\u5947 - Police Charger \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Police Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - Mustang \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2017 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2020 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S 2021 \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5c3c\u6851 - Micra \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True Seat - Leon \u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Toyota - Prius \u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5361\u8f66 Carla Motors - CarlaCola \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - Firetruck \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5927\u4f17 - T2 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u4f17 - T2 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider \u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Kawasaki - Ninja \u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Vespa - ZX 125 \u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Yamaha - YZF \u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century \u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Gazelle - Omafiets \u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Catalogue vehicles"},{"location":"catalogue_vehicles/#_1","text":"","title":"\u8f66\u8f86 \u76ee\u5f55"},{"location":"catalogue_vehicles/#2","text":"\u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa","title":"\u7b2c 2 \u4ee3"},{"location":"catalogue_vehicles/#_2","text":"\u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets","title":"\u7b2c\u4e00\u4ee3"},{"location":"catalogue_vehicles/#_3","text":"\u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( )","title":"\u68c0\u67e5 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86"},{"location":"catalogue_vehicles/#_4","text":"","title":"\u8f66"},{"location":"catalogue_vehicles/#-a2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - A2"},{"location":"catalogue_vehicles/#-e-tron","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - E - Tron"},{"location":"catalogue_vehicles/#-tt","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - TT"},{"location":"catalogue_vehicles/#-","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5b9d\u9a6c - \u591a\u529f\u80fd \u65c5\u884c\u8f66"},{"location":"catalogue_vehicles/#-impala","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u4f5b\u5170 - Impala"},{"location":"catalogue_vehicles/#-c3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u94c1\u9f99 - C3"},{"location":"catalogue_vehicles/#-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Charger 2020"},{"location":"catalogue_vehicles/#-police-charger","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u9053\u5947 - Police Charger"},{"location":"catalogue_vehicles/#-police-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Police Charger 2020"},{"location":"catalogue_vehicles/#-_1","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df\u8f66 \uff09"},{"location":"catalogue_vehicles/#-mustang","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u798f\u7279 - Mustang"},{"location":"catalogue_vehicles/#-wrangler-rubicon","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5409\u666e\u8f66 - Wrangler Rubicon"},{"location":"catalogue_vehicles/#-mkz-2017","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6797\u80af - MKZ 2017"},{"location":"catalogue_vehicles/#-mkz-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6797\u80af - MKZ 2020"},{"location":"catalogue_vehicles/#-coupe","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6885\u8d5b\u5fb7\u65af - Coupe"},{"location":"catalogue_vehicles/#-coupe-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Coupe 2020"},{"location":"catalogue_vehicles/#-microlino","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5fae\u578b\u8f66 - Microlino"},{"location":"catalogue_vehicles/#-cooper-s","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u8ff7\u4f60 - Cooper S"},{"location":"catalogue_vehicles/#-cooper-s-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u8ff7\u4f60 - Cooper S 2021"},{"location":"catalogue_vehicles/#-micra","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Micra"},{"location":"catalogue_vehicles/#-patrol","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Patrol"},{"location":"catalogue_vehicles/#-patrol-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5c3c\u6851 - Patrol 2021"},{"location":"catalogue_vehicles/#seat-leon","text":"\u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Seat - Leon"},{"location":"catalogue_vehicles/#-model-3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Model 3"},{"location":"catalogue_vehicles/#toyota-prius","text":"\u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Toyota - Prius"},{"location":"catalogue_vehicles/#_5","text":"","title":"\u5361\u8f66"},{"location":"catalogue_vehicles/#carla-motors-carlacola","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - CarlaCola"},{"location":"catalogue_vehicles/#carla-motors-hgv","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09"},{"location":"catalogue_vehicles/#carla-motors-firetruck","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"Carla Motors - Firetruck"},{"location":"catalogue_vehicles/#-cybertruck","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Cybertruck"},{"location":"catalogue_vehicles/#_6","text":"","title":"\u9762\u5305\u8f66"},{"location":"catalogue_vehicles/#-_2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u6551\u62a4\u8f66"},{"location":"catalogue_vehicles/#-sprinter","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Sprinter"},{"location":"catalogue_vehicles/#-t2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u4f17 - T2"},{"location":"catalogue_vehicles/#-t2-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5927\u4f17 - T2 2021"},{"location":"catalogue_vehicles/#_7","text":"","title":"\u5df4\u58eb"},{"location":"catalogue_vehicles/#-fusorosa","text":"\u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u4e09\u83f1 - Fusorosa"},{"location":"catalogue_vehicles/#_8","text":"","title":"\u6469\u6258\u8f66"},{"location":"catalogue_vehicles/#-low-rider","text":"\u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider"},{"location":"catalogue_vehicles/#kawasaki-ninja","text":"\u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Kawasaki - Ninja"},{"location":"catalogue_vehicles/#vespa-zx-125","text":"\u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Vespa - ZX 125"},{"location":"catalogue_vehicles/#yamaha-yzf","text":"\u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Yamaha - YZF"},{"location":"catalogue_vehicles/#_9","text":"","title":"\u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#bh-","text":"\u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"BH - \u8d8a\u91ce \u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#-century","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u540d \u81ea\u884c\u8f66 - Century"},{"location":"catalogue_vehicles/#gazelle-omafiets","text":"\u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Gazelle - Omafiets"},{"location":"cont_code_of_conduct/","text":"\u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e \u6211\u4eec \u7684 \u627f\u8bfa \u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002 \u6211\u4eec \u7684 \u6807\u51c6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a \u6211\u4eec \u7684 \u8d23\u4efb \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002 \u8303\u56f4 \u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002 \u6267\u884c \u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002 \u5f52\u5c5e \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_1","text":"\u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e","title":"\u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_2","text":"\u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002","title":"\u6211\u4eec \u7684 \u627f\u8bfa"},{"location":"cont_code_of_conduct/#_3","text":"\u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a","title":"\u6211\u4eec \u7684 \u6807\u51c6"},{"location":"cont_code_of_conduct/#_4","text":"\u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002","title":"\u6211\u4eec \u7684 \u8d23\u4efb"},{"location":"cont_code_of_conduct/#_5","text":"\u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002","title":"\u8303\u56f4"},{"location":"cont_code_of_conduct/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002","title":"\u6267\u884c"},{"location":"cont_code_of_conduct/#_7","text":"\u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u5f52\u5c5e"},{"location":"cont_coding_standard/","text":"\u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u4e00\u822c Python C++ \u4e00\u822c \u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002 Python \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002 C++ \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_1","text":"\u4e00\u822c Python C++","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_2","text":"\u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002","title":"\u4e00\u822c"},{"location":"cont_coding_standard/#python","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002","title":"Python"},{"location":"cont_coding_standard/#c","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"C++"},{"location":"cont_contribution_guidelines/","text":"\u4e3a Carla \u505a\u51fa \u8d21\u732e Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e \u62a5\u544a \u9519\u8bef \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002 \u8bf7\u6c42 \u529f\u80fd \u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002 \u4ee3\u7801 \u8d21\u732e \u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002 \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002 \u5f00\u59cb \u4e4b\u524d \u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002 \u63d0\u4ea4 \u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002 \u6e05\u5355 \u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002 \u827a\u672f \u8d21\u732e \u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002 \u6587\u6863 \u8d21\u732e \u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u8d21\u732e \u6307\u5357"},{"location":"cont_contribution_guidelines/#carla","text":"Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e","title":"\u4e3a Carla \u505a\u51fa \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_1","text":"\u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002","title":"\u62a5\u544a \u9519\u8bef"},{"location":"cont_contribution_guidelines/#_2","text":"\u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002","title":"\u8bf7\u6c42 \u529f\u80fd"},{"location":"cont_contribution_guidelines/#_3","text":"\u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002","title":"\u4ee3\u7801 \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_4","text":"\u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002","title":"\u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce"},{"location":"cont_contribution_guidelines/#_5","text":"\u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"cont_contribution_guidelines/#_6","text":"\u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_contribution_guidelines/#_7","text":"\u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002","title":"\u63d0\u4ea4"},{"location":"cont_contribution_guidelines/#_8","text":"\u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002","title":"\u6e05\u5355"},{"location":"cont_contribution_guidelines/#_9","text":"\u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002","title":"\u827a\u672f \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_10","text":"\u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u6587\u6863 \u8d21\u732e"},{"location":"cont_doc_standard/","text":"\u6587\u6863 \u6807\u51c6 \u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u6587\u6863 \u7ed3\u6784 \u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs . \u89c4\u5219 \u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_1","text":"\u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_2","text":"\u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs .","title":"\u6587\u6863 \u7ed3\u6784"},{"location":"cont_doc_standard/#_3","text":"\u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002","title":"\u89c4\u5219"},{"location":"cont_doc_standard/#_4","text":"\u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u4f8b\u5916\u60c5\u51b5"},{"location":"content_authoring_large_maps/","text":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002 \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"Content authoring large maps"},{"location":"content_authoring_large_maps/#carla","text":"Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002","title":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_1","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_2","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#carla_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002","title":"\u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla"},{"location":"content_authoring_large_maps/#_1","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"content_authoring_large_maps/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"content_authoring_large_maps/#_2","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"content_authoring_large_maps/#_3","text":"\u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#_4","text":"\u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002","title":"\u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f"},{"location":"content_authoring_large_maps/#_5","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"core_actors/","text":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002 \u7ba1\u7406 \u84dd \u56fe\u5e93 carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002 \u751f\u6210 \u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) ) \u5904\u7406 carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002 \u6467\u6bc1 \u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) ) \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8f66\u8f86 carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u884c\u4eba carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_1","text":"Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_2","text":"\u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002","title":"\u84dd\u56fe"},{"location":"core_actors/#_3","text":"carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002","title":"\u7ba1\u7406 \u84dd \u56fe\u5e93"},{"location":"core_actors/#_4","text":"\u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002","title":"\u53c2\u4e0e\u8005 \u751f\u547d\u5468\u671f"},{"location":"core_actors/#_5","text":"\u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) )","title":"\u751f\u6210"},{"location":"core_actors/#_6","text":"carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002","title":"\u5904\u7406"},{"location":"core_actors/#_7","text":"\u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002","title":"\u6467\u6bc1"},{"location":"core_actors/#_8","text":"","title":"\u53c2\u4e0e\u8005 \u7c7b\u578b"},{"location":"core_actors/#_9","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002","title":"\u4f20\u611f\u5668"},{"location":"core_actors/#_10","text":"\u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) )","title":"\u89c2\u5bdf\u8005"},{"location":"core_actors/#_11","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"\u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a\u706f"},{"location":"core_actors/#_12","text":"carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights )","title":"\u8f66\u8f86"},{"location":"core_actors/#_13","text":"carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u884c\u4eba"},{"location":"core_map/","text":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5 \u5730\u56fe \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002 \u6539\u53d8 \u5730\u56fe \u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) ) \u5730\u6807 OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True ) \u8def\u5f84 \u70b9 carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2cm \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color \u8f66\u9053 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change \u8def\u53e3 carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( ) \u73af\u5883 \u5bf9\u8c61 Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a \u5728 Carla \u4e2d \u5bfc\u822a Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002 \u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 ) \u751f\u6210 \u5730\u56fe \u5bfc\u822a \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( ) Carla \u5730\u56fe Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8 \u975e \u5206\u5c42 \u5730\u56fe \u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a "},{"location":"core_map/#_1","text":"\u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a"},{"location":"core_map/#_2","text":"\u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002","title":"\u5730\u56fe"},{"location":"core_map/#_3","text":"\u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) )","title":"\u6539\u53d8 \u5730\u56fe"},{"location":"core_map/#_4","text":"OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True )","title":"\u5730\u6807"},{"location":"core_map/#_5","text":"carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2cm \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color","title":"\u8def\u5f84 \u70b9"},{"location":"core_map/#_6","text":"OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change","title":"\u8f66\u9053"},{"location":"core_map/#_7","text":"carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( )","title":"\u8def\u53e3"},{"location":"core_map/#_8","text":"Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a","title":"\u73af\u5883 \u5bf9\u8c61"},{"location":"core_map/#carla","text":"Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002","title":"\u5728 Carla \u4e2d \u5bfc\u822a"},{"location":"core_map/#_9","text":"Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 )","title":"\u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a"},{"location":"core_map/#_10","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( )","title":"\u751f\u6210 \u5730\u56fe \u5bfc\u822a"},{"location":"core_map/#carla_1","text":"Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8","title":"Carla \u5730\u56fe"},{"location":"core_map/#_11","text":"\u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002","title":"\u975e \u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_12","text":"\u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a","title":"\u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_13","text":"Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"core_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002 \u8bbe\u7f6e \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' ) \u751f\u6210 attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u76d1\u542c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback ) \u6570\u636e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5176\u4ed6 \u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u7b2c\u56db \u3001 \u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_1","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_2","text":"carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002","title":"\u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd"},{"location":"core_sensors/#_3","text":"\u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' )","title":"\u8bbe\u7f6e"},{"location":"core_sensors/#_4","text":"attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u751f\u6210"},{"location":"core_sensors/#_5","text":"\u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback )","title":"\u76d1\u542c"},{"location":"core_sensors/#_6","text":"\u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002","title":"\u6570\u636e"},{"location":"core_sensors/#_7","text":"","title":"\u4f20\u611f\u5668 \u7c7b\u578b"},{"location":"core_sensors/#_8","text":"\u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002","title":"\u76f8\u673a"},{"location":"core_sensors/#_9","text":"\u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002","title":"\u68c0\u6d4b\u5668"},{"location":"core_sensors/#_10","text":"\u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5176\u4ed6"},{"location":"core_world/","text":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002 \u4e16\u754c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u4e16\u754c \u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002 \u5929\u6c14 \u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002 \u706f\u5149 \u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002 \u8c03\u8bd5 \u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002 \u4e16\u754c \u5feb\u7167 \u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_1","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_2","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"core_world/#_3","text":"\u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002","title":"\u5ba2\u6237\u7aef \u521b\u5efa"},{"location":"core_world/#_4","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002","title":"\u4e16\u754c \u8fde\u63a5"},{"location":"core_world/#_5","text":"\u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002","title":"\u4f7f\u7528 \u547d\u4ee4"},{"location":"core_world/#_6","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002","title":"\u5176\u4ed6 \u5ba2\u6237\u7aef \u5b9e\u7528\u7a0b\u5e8f"},{"location":"core_world/#_7","text":"\u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u4e16\u754c"},{"location":"core_world/#_8","text":"\u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002","title":"\u53c2\u4e0e\u8005"},{"location":"core_world/#_9","text":"\u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002","title":"\u5929\u6c14"},{"location":"core_world/#_10","text":"\u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002","title":"\u706f\u5149"},{"location":"core_world/#_11","text":"\u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002","title":"\u8c03\u8bd5"},{"location":"core_world/#_12","text":"\u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167","title":"\u4e16\u754c \u5feb\u7167"},{"location":"core_world/#_13","text":"\u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u4e16\u754c \u8bbe\u7f6e"},{"location":"custom_assets_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599 \u6dfb\u52a0 \u9053\u5177 \u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002 \u6dfb\u52a0 \u8f66\u8f86 \u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002 \u6253\u5305 \u8d44\u4ea7 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u5b9a\u5236 \u6750\u6599 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_1","text":"Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_2","text":"\u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002","title":"\u6dfb\u52a0 \u9053\u5177"},{"location":"custom_assets_tutorials/#_3","text":"\u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002","title":"\u6dfb\u52a0 \u8f66\u8f86"},{"location":"custom_assets_tutorials/#_4","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002","title":"\u6253\u5305 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_5","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u5b9a\u5236 \u6750\u6599"},{"location":"development_tutorials/","text":"\u5f00\u53d1 Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c \u8fdb\u884c \u53d1\u5e03 \u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 \u751f\u6210 \u78b0\u649e \u8fb9\u754c \u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_1","text":"Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_2","text":"\u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002","title":"\u8fdb\u884c \u53d1\u5e03"},{"location":"development_tutorials/#_3","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002","title":"\u5347\u7ea7 \u5185\u5bb9"},{"location":"development_tutorials/#_4","text":"Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"development_tutorials/#_5","text":"\u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"development_tutorials/#_6","text":"Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"development_tutorials/#_7","text":"\u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"development_tutorials/#_8","text":"\u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u751f\u6210 \u78b0\u649e \u8fb9\u754c"},{"location":"download/","text":"\u4e0b\u8f7d \u6700\u65b0 \u53d1\u5e03 Carla 0.9 . 15 - \u6587\u6863 \u6bcf\u665a \u6784\u5efa \u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows ) \u7248\u672c 0.9 . x \u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863 Versions 0.8 . x Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863 Docker \u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"\u4e0b\u8f7d"},{"location":"download/#_1","text":"","title":"\u4e0b\u8f7d"},{"location":"download/#_2","text":"Carla 0.9 . 15 - \u6587\u6863","title":"\u6700\u65b0 \u53d1\u5e03"},{"location":"download/#_3","text":"\u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows )","title":"\u6bcf\u665a \u6784\u5efa"},{"location":"download/#09x","text":"\u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863","title":"\u7248\u672c 0.9 . x"},{"location":"download/#versions-08x","text":"Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863","title":"Versions 0.8 . x"},{"location":"download/#docker","text":"\u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"Docker"},{"location":"ecosys_ansys/","text":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b"},{"location":"ecosys_ansys/#ansys","text":"\u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236\u5668"},{"location":"ecosys_femfx/","text":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_femfx/#_1","text":"FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_iss/","text":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u793a\u4f8b \u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a \u5fae\u578b \u5fae\u578b\u8f66 \u6f14\u793a \u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_1","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236","title":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_2","text":"\u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a","title":"\u4eff\u771f\u5668 \u793a\u4f8b"},{"location":"ecosys_iss/#_3","text":"\u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"\u5fae\u578b\u8f66 \u6f14\u793a"},{"location":"ecosys_ros/","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7 Carla \u7684 \u539f\u751f ROS \u63a5\u53e3 \u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002 Carla ROS \u6865 Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Ecosys ros"},{"location":"ecosys_ros/#_1","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7","title":"\u673a\u5668\u4eba \u64cd\u4f5c\u7cfb\u7edf"},{"location":"ecosys_ros/#carla-ros","text":"\u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002","title":"Carla \u7684 \u539f\u751f ROS \u63a5\u53e3"},{"location":"ecosys_ros/#carla-ros_1","text":"Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Carla ROS \u6865"},{"location":"ext_docs/","text":"\u6269\u5c55 \u6587\u6863 \u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002 \u5148\u8fdb \u7406\u5ff5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u53c2\u8003 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_1","text":"\u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_2","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002","title":"\u5148\u8fdb \u7406\u5ff5"},{"location":"ext_docs/#_3","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002","title":"\u4ea4\u901a \u4eff\u771f"},{"location":"ext_docs/#_4","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002","title":"\u53c2\u8003"},{"location":"ext_docs/#_5","text":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"ext_docs/#_6","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"foundations/","text":"\u57fa\u7840 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' ) \u4e16\u754c \u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5730\u56fe \u548c \u5bfc\u822a \u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8bb0\u5f55 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u56de\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002 \u6e32\u67d3 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u8fdb\u9636 \u6b65\u9aa4 Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u6982\u5ff5 \u548c \u57fa\u7840"},{"location":"foundations/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f","title":"\u57fa\u7840"},{"location":"foundations/#_2","text":"","title":"\u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"foundations/#_3","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' )","title":"\u5ba2\u6237\u7aef"},{"location":"foundations/#_4","text":"\u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( )","title":"\u4e16\u754c"},{"location":"foundations/#_5","text":"\u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"\u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"foundations/#_6","text":"\u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002","title":"\u5730\u56fe \u548c \u5bfc\u822a"},{"location":"foundations/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"foundations/#_8","text":"Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_9","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_10","text":"\u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_11","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002","title":"\u8bb0\u5f55\u5668"},{"location":"foundations/#_12","text":"\u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"foundations/#_13","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u56de\u653e"},{"location":"foundations/#_14","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"foundations/#_15","text":"Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a","title":"\u6e32\u67d3"},{"location":"foundations/#_16","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"foundations/#_17","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"foundations/#_18","text":"Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u8fdb\u9636 \u6b65\u9aa4"},{"location":"iss_install/","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 ISS \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u4ece \u5176 Github \u4ed3\u5e93 \u4e0b\u8f7d \uff0c \u5176\u4e2d \u53ef\u4ee5 \u627e\u5230 \u8be6\u7ec6 \u7684 \u5b89\u88c5 \u8bf4\u660e \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 ISS \u4f7f\u7528 Ubuntu 20.04 \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u8fd0\u884c Python 3.8 \u3002 \u5bf9\u4e8e \u90a3\u4e9b \u6709 \u5174\u8da3 \u5c06 ISS \u4e0e Gazebo \u548c ROS - Noetic \u7ed3\u5408 \u4f7f\u7528 \u7684 \u4eba \uff0c \u60a8 \u5e94\u8be5 \u6309\u7167 \u5b98\u65b9 ROS \u6587\u6863 \u4e2d \u63d0\u4f9b \u7684 \u8bf4\u660e \u5b89\u88c5 ROS - Noetic \u3002 \u8981 \u5c06 ISS \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u5fc5\u987b \u5b89\u88c5 Carla \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u7248\u672c 0.9 . 13 \uff0c \u53ef\u4ee5 \u5728 Carla GitHub \u53d1\u5e03 \u9875\u9762 \u53d1\u5e03\u9875 \u53d1\u5e03\u9875\u9762 \u627e\u5230 \u8be5 \u7248\u672c \u3002 \u5f00\u53d1 \u7248 \u8981 \u5b89\u88c5 ISS \u7684 \u5f00\u53d1 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 git clone https : / / github . com / CAS - LRJ / ISS . git cd ISS && python3 setup . py develop \u6784\u5efa \u8981 \u6784\u5efa ISS \u7684 ROS \u5305 \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 cd ISS / ros1 _ ws && catkin build source devel / setup . bash \u8fd0\u884c \u4efb\u52a1 \u5982\u679c \u4f7f\u7528 Gazebo \uff0c \u53ea \u9700 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch robot _ gazebo gazebo _ demo . launch \u5982\u679c \u4f7f\u7528 Carla \uff0c \u8bf7 \u5148 \u542f\u52a8 Carla \uff0c \u7136\u540e \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch carla _ bridge carla _ demo . launch","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":"\u8981 \u5b89\u88c5 ISS \u7684 \u5f00\u53d1 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 git clone https : / / github . com / CAS - LRJ / ISS . git cd ISS && python3 setup . py develop","title":"\u5f00\u53d1 \u7248"},{"location":"iss_install/#_4","text":"\u8981 \u6784\u5efa ISS \u7684 ROS \u5305 \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 cd ISS / ros1 _ ws && catkin build source devel / setup . bash","title":"\u6784\u5efa"},{"location":"iss_install/#_5","text":"\u5982\u679c \u4f7f\u7528 Gazebo \uff0c \u53ea \u9700 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch robot _ gazebo gazebo _ demo . launch \u5982\u679c \u4f7f\u7528 Carla \uff0c \u8bf7 \u5148 \u542f\u52a8 Carla \uff0c \u7136\u540e \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch carla _ bridge carla _ demo . launch","title":"\u8fd0\u884c \u4efb\u52a1"},{"location":"large_map_import/","text":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_2","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"large_map_import/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"large_map_import/#_3","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"large_map_import/#_4","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"large_map_overview/","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u6982\u8ff0 Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002 \u74e6\u7247 \u6d41 \u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_1","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_2","text":"Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_3","text":"\u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002","title":"\u74e6\u7247 \u6d41"},{"location":"large_map_overview/#_4","text":"\u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4f11\u7720 \u53c2\u4e0e\u8005"},{"location":"large_map_roadrunner/","text":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002 \u4e0b \u4e00\u4e2a \u6b65\u9aa4 \u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4","title":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"large_map_roadrunner/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"large_map_roadrunner/#roadrunner_2","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_3","text":"\u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#_2","text":"\u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u4e2a \u6b65\u9aa4"},{"location":"map_town01/","text":"\u57ce\u9547 1 \u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#1","text":"\u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#_1","text":"\u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town01/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town02/","text":"\u57ce\u9547 2 \u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#2","text":"\u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#_1","text":"\u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002","title":"\u8def\u7f51"},{"location":"map_town02/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u7279\u5f81"},{"location":"map_town03/","text":"\u57ce\u9547 3 \u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002 \u8def\u7f51 \u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#3","text":"\u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#_1","text":"\u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town03/#_2","text":"\u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town04/","text":"\u57ce\u9547 4 \u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u7279\u5f81 \u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#4","text":"\u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#_1","text":"\u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002","title":"\u8def\u7f51"},{"location":"map_town04/#_2","text":"\u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u7279\u5f81"},{"location":"map_town05/","text":"\u57ce\u9547 5 \u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8def\u7f51 \u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u7279\u5f81 \u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#5","text":"\u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#_1","text":"\u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002","title":"\u8def\u7f51"},{"location":"map_town05/#_2","text":"\u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u7279\u5f81"},{"location":"map_town06/","text":"\u57ce\u9547 6 \u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#6","text":"\u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/","text":"\u57ce\u9547 7 \u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002 \u7279\u5f81 \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#7","text":"\u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/#_2","text":"\u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u7279\u5f81"},{"location":"map_town10/","text":"\u57ce\u9547 10 \u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002 \u7279\u5f81 \u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#10","text":"\u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#_1","text":"\u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002","title":"\u8def\u7f51"},{"location":"map_town10/#_2","text":"\u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town11/","text":"\u57ce\u9547 11 \u662f \u4e00\u5f20 \u6ca1\u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u6216 \u690d\u88ab \u7b49 \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7531 \u6742\u4e71 \u6742\u4e71\u65e0\u7ae0 \u7684 \u5355\u8f66 \u9053 \u9053\u8def \u7ec4\u6210 \uff0c \u6563\u5e03 \u7740 \u5c0f\u7fa4 \u7f51\u683c \u72b6 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3002 \u8be5 \u666f\u89c2 \u6709 \u4e00\u4e9b \u4e18\u9675 \u548c \u9ad8\u5730 \uff0c \u5e76\u4e14 \u5177\u6709 \u8349\u72b6 \u7eb9\u7406 \u3002 \u57ce\u9547 11 \u4e3b\u8981 \u7528\u4f5c Carla 0.9 . 12 \u4e2d \u5f15\u5165 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u9a8c\u8bc1 \uff0c \u5e76\u4e14 \u662f \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u96c6\u6210 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u5927 \u5730\u56fe \u3002 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u67e5\u770b \u57ce\u9547 11 \u7684 \u8d44\u6e90 \u6587\u4ef6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u7684 \u60c5\u51b5 \u3002","title":"Map town11"},{"location":"map_town12/","text":"\u57ce\u9547 12 \u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 12 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 12"},{"location":"map_town12/#12","text":"\u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002","title":"\u57ce\u9547 12"},{"location":"map_town12/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town12/#12_1","text":"","title":"\u57ce\u9547 12 \u533a"},{"location":"map_town12/#_2","text":"\u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town12/#_3","text":"\u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_4","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town12/#_5","text":"\u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town12/#_7","text":"\u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town12/#_8","text":"\u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town12/#_9","text":"\u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town13/","text":"\u57ce\u9547 13 \u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 13 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 13"},{"location":"map_town13/#13","text":"\u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002","title":"\u57ce\u9547 13"},{"location":"map_town13/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town13/#13_1","text":"","title":"\u57ce\u9547 13 \u533a"},{"location":"map_town13/#_2","text":"\u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town13/#_3","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town13/#_4","text":"\u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_5","text":"\u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town13/#_7","text":"\u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town13/#_8","text":"\u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town13/#_9","text":"\u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town15/","text":"\u57ce\u9547 15 \u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002 \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#15","text":"\u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#_1","text":"\u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002","title":"\u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3"},{"location":"map_town15/#_2","text":"\u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u4eba\u6587 \u56fe\u4e66\u9986"},{"location":"maps_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"maps_tutorials/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"pcl_recorder/","text":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools \u4f7f\u7528 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_1","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_2","text":"\u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"pcl_recorder/#pcl","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u4f7f\u7528 PCL \u8bb0\u5f55\u5668"},{"location":"plugins_carlaviz/","text":"carlaviz carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177 \u4e00\u822c \u4fe1\u606f \u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT . \u652f\u6301 Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002 \u4e0b\u8f7d \u63d2\u4ef6 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002 \u8fd0\u884c carlaviz 1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002 \u5de5\u5177 \u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Web \u53ef\u89c6\u5316 \u5668"},{"location":"plugins_carlaviz/#carlaviz","text":"carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177","title":"carlaviz"},{"location":"plugins_carlaviz/#_1","text":"\u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT .","title":"\u4e00\u822c \u4fe1\u606f"},{"location":"plugins_carlaviz/#_2","text":"Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002","title":"\u652f\u6301"},{"location":"plugins_carlaviz/#carlaviz_1","text":"","title":"\u83b7\u53d6 carlaviz"},{"location":"plugins_carlaviz/#_3","text":"Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"plugins_carlaviz/#_4","text":"\u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002","title":"\u4e0b\u8f7d \u63d2\u4ef6"},{"location":"plugins_carlaviz/#carlaviz_2","text":"1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002","title":"\u8fd0\u884c carlaviz"},{"location":"plugins_carlaviz/#_5","text":"\u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5de5\u5177"},{"location":"python_api/","text":"Python API \u53c2\u8003 \u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002 carla . AckermannControllerSettings \u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 \u65b9\u6cd5 __ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float ) Dunder methods __ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self ) carla . Actor Carla \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u4e49 \u4e3a \u5728 \u4eff\u771f \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u6216 \u53ef\u4ee5 \u79fb\u52a8 \u7684 \u4efb\u4f55 \u7269\u4f53 \u3002 \u5176\u4e2d \u5305\u62ec \uff1a \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u89c6\u4e3a \u5176\u4e2d \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4eff\u771f \u4e2d \u7531 carla . World \u751f\u6210 \uff0c \u5e76\u4e14 \u9700\u8981 \u521b\u5efa carla . ActorBlueprint \u3002 \u8fd9\u4e9b \u84dd\u56fe \u5c5e\u4e8e Carla \u63d0\u4f9b \u7684 \u5e93 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002 \u65b9\u6cd5 add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - degrees ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u626d\u77e9 \u77e2\u91cf \u3002 destroy ( self ) \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8fd9\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u6210\u529f \u5219 True \u3002 \u5982\u679c \u5df2\u7ecf \u88ab \u7834\u574f \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u8fd4\u56de : bool \u8b66\u544a : T \u6b64 \u65b9\u6cd5 \u4f1a \u963b\u6b62 \u811a\u672c \uff0c \u76f4\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b8c\u6210 \u9500\u6bc1 \u4e3a\u6b62 \u3002 disable _ constant _ velocity ( self ) \u7981\u7528 \u4e4b\u524d \u4e3a carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u7684 \u4efb\u4f55 \u6052\u5b9a \u901f\u5ea6 \u3002 enable _ constant _ velocity ( self , velocity ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u77e2\u91cf \u8bbe\u7f6e \u4e3a \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u6052\u5b9a \u503c \u3002 \u6240 \u5f97\u5230 \u7684 \u901f\u5ea6 \u5c06 \u8fd1\u4f3c \u8fd1\u4f3c\u4e8e velocity \u6240 \u8bbe\u7f6e \u7684 \u901f\u5ea6 \uff0c \u4e0e set _ target _ velocity ( ) \u4e00\u6837 \u3002 \u53c2\u6570 : velocity ( carla . Vector3D - m / s ) - Velocity vector in local space . \u6ce8\u610f : \u53ea\u6709 carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u3002 \u8b66\u544a : \u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u542f\u7528 \u6052\u5b9a \u901f\u5ea6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u6b64 \u65b9\u6cd5 \u4f1a \u8986\u76d6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9 \u901f\u5ea6 \u7684 \u4efb\u4f55 \u66f4\u6539 \u3002 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - meters \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World \u8bbe\u7f6e \u5668 set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - meters ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform Dunder methods __ 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 Dunder methods __ 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 Return : bool __ str __ ( self ) carla . ActorAttributeType Carla \u5728 carla . BlueprintLibrary \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u6b64\u7c7b \u5c06 carla . ActorAttribute \u4e2d \u7684 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u3002 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \u5747 \u5728 \u5185\u90e8 \u7ba1\u7406 \uff0c \u5e76 \u5728 \u6b64\u5904 \u5217\u51fa \uff0c \u4ee5\u4fbf \u66f4\u597d \u5730 \u7406\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf Bool Int Float String RGBColor carla . ActorBlueprint Carla \u4e3a Actor \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u67e5\u9605 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u5305\u542b \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53ef\u4ee5 \u4fee\u6539 \u6216 \u4e0d\u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u8be5\u7c7b \u662f \u5e93 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u521b\u5efa \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u6b65\u9aa4 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9700\u8981 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u624d\u80fd \u4ea7\u751f \u3002 \u8fd9\u4e9b \u5c06 \u6240\u8ff0 \u84dd\u56fe \u7684 \u4fe1\u606f \u53ca\u5176 \u5c5e\u6027 \u548c \u4e00\u4e9b \u6807\u7b7e \u5b58\u50a8 \u5728 \u5bf9\u8c61 \u4e2d\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u5206\u7c7b \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u5c5e\u6027 \u5e76 \u6700\u7ec8 \u901a\u8fc7 carla . World \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( str ) \u5e93\u5185 \u6240\u8ff0 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u4f8b\u5982 walker . pedestrian.0001 \u3002 tags ( list ( str ) ) \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u7684 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63cf\u8ff0 \u5b83\u4eec \u7684 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 [ ' 0001 ' , ' pedestrian ' , ' walker ' ] \u3002 \u65b9\u6cd5 has _ attribute ( self , id ) \u5982\u679c \u84dd\u56fe \u5305\u542b \u8be5 id \u5c5e\u6027 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a id ( str ) - \u4f8b\u5982 gender \u5c06 \u4e3a \u884c\u4eba \u7684 \u84dd\u56fe \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool has _ tag ( self , tag ) \u5982\u679c \u84dd\u56fe \u5df2 \u5217\u51fa \u6307\u5b9a tag \u7684 \u5185\u5bb9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a tag ( str ) - \u4f8b\u5982 \uff1a ' walker ' \u3002 \u8fd4\u56de \uff1a bool match _ tags ( self , wildcard _ pattern ) \u5982\u679c \u4e3a\u6b64 \u84dd\u56fe \u5217\u51fa \u7684 \u4efb\u4f55 \u6807\u8bb0 \u5339\u914d wildcard _ pattern \uff0c \u5219 \u8fd4\u56de True \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ attribute ( self , id ) \u8fd4\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4ee5\u53ca id \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorAttribute \u8bbe\u7f6e \u5668 \uff1a carla . ActorBlueprint . set _ attribute \u8bbe\u7f6e \u5668 set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute Dunder \u65b9\u6cd5 __ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self ) carla . ActorList \u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u7b5b\u9009 \u5339\u914d wildcard _ pattern \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \uff0c \u4ee5 \u5bf9\u6297 \u53d8\u91cf type _ id ( \u5b83 \u6807\u8bc6 \u7528\u4e8e \u751f\u6210 \u5b83\u4eec \u7684 \u84dd\u56fe ) \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a list find ( self , actor _ id ) \u4f7f\u7528 \u5176 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8fd4\u56de \u5b83 \uff0c \u5982\u679c \u4e0d \u5b58\u5728 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a carla . Actor Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u4e0e \u5217\u8868 \u4e2d pos \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de \uff1a carla . Actor __ iter __ ( self ) \u5728 \u5305\u542b carla . Actor \u7684 \u5217\u8868 \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u5217\u51fa \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u5728 \u5217\u51fa \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u89e3\u6790 ID \u3002 \u8fd4\u56de \uff1a str carla . ActorSnapshot \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u7279\u5b9a \u65f6\u523b \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5305\u542b \u5728 carla . WorldSnapshot \u4e2d \uff0c \u5e76 \u5728 \u6bcf\u4e2a \u65f6\u949f \u5468\u671f \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6b21 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u4e3a \u8be5 tick \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - rad / s get _ transform ( self ) \u8fd4\u56de \u8be5 tick \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8fd4\u56de \uff1a carla . Transform get _ velocity ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s carla . ActorState \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u72b6\u6001 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Invalid \u5982\u679c \u51fa\u73b0 \u95ee\u9898 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31\u662f \u65e0\u6548 \u7684 \u3002 Active \u5f53 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83 \u5c31\u662f \u6d3b\u8dc3 \u7684 \u3002 Dormant \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d \u88ab \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u4e0d\u4f1a \u901a\u8fc7 \u7269\u7406 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u4e8e \u5927 \u5730\u56fe \u4e2d \u5df2 \u5378\u8f7d \u7684 \u56fe\u5757 \u4e0a \uff0c \u5219 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 carla . AttachmentType \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u5176\u7236 \u7ea7 \u4e4b\u95f4 \u7684 \u9644\u4ef6 \u9009\u9879 \u7684 \u7c7b \u3002 \u5f53 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83\u4eec \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \uff0c \u8fd9\u6837 \u5b83\u4eec \u7684 \u4f4d\u7f6e \u5c31 \u4f1a \u76f8\u5e94 \u6539\u53d8 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 carla . World . spawn _ actor \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u751f\u6210 \u65f6 \u8fde\u63a5 \u5230 \u6c7d\u8f66 \u4e0a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9644\u4ef6 \u7c7b\u578b \u5728 \u7c7b \u4e2d \u58f0\u660e \u4e3a \u679a\u4e3e \u3002 \u5b9e\u4f8b \u53d8\u91cf Rigid \u901a\u8fc7 \u6b64 \u56fa\u5b9a \u9644\u4ef6 \uff0c \u5bf9\u8c61 \u4e25\u683c \u9075\u5faa \u5176\u7236 \u4f4d\u7f6e \u3002 \u8fd9\u662f \u63a8\u8350 \u7684 \u9644\u4ef6 \uff0c \u7528\u4e8e \u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \u3002 SpringArm \u4e00\u79cd \u9644\u4ef6 \uff0c \u53ef \u6839\u636e \u5176\u7236 \u7ea7 \u6269\u5c55 \u6216 \u7f29\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u4ec5 \u5efa\u8bae \u5728 \u9700\u8981 \u5e73\u6ed1 \u8fd0\u52a8 \u7684 \u4eff\u771f \u4e2d \u5f55\u5236 \u89c6\u9891 \u65f6 \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u56e0\u6b64 check the UE \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u5947\u602a \u7684 \u884c\u4e3a \u3002 \uff08 \u6bd4\u5982 \uff1a child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 SpringArmGhost \u4e00\u4e2a \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \u7684 \u9644\u4ef6 \uff0c \u4f46 \u5b83 \u4e0d\u4f1a \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u4e0d\u4f1a \u6269\u5c55 \u6216 \u6536\u7f29 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 ghost \u4e00\u8bcd \u56e0\u4e3a \u662f\u56e0\u4e3a \u8fd9\u6837 \u76f8\u673a \u5c31 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u548c \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 \u6b64 \u9644\u4ef6 \u4ec5 \u5efa\u8bae \u7528\u4e8e \u5f55\u5236 \u9700\u8981 \u5e73\u6ed1 \u79fb\u52a8 \u7684 \u4eff\u771f \u89c6\u9891 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u8bf7 \u67e5\u770b \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u4f1a \u51fa\u73b0 \u5947\u602a \u7684 \u884c\u4e3a \uff08 \u6bd4\u5982 child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 carla . BlueprintLibrary \u5305\u542b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u63d0\u4f9b \u7684 \u84dd\u56fe \u7684 \u7c7b \u3002 \u5b83 \u7684 \u4e3b\u8981 \u5e94\u7528 \u662f \u8fd4\u56de \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u9700 \u7684 carla . ActorBlueprint \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u4e2a \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u53ef\u80fd \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u4e5f \u53ef\u80fd \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u8be5\u5e93 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u8bbf\u95ee \u3002 \u8fd9 \u662f \u5305\u542b \u6bcf\u4e2a \u53ef\u7528 \u84dd\u56fe \u53ca\u5176 \u7ec6\u8282 \u7684 \u53c2\u8003 \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 id \u548c \u6807\u8bb0 \u8fc7\u6ee4 \u4e0e \u901a\u914d\u7b26 \u6a21\u5f0f wildcard _ pattern \u5339\u914d \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary filter _ by _ attribute ( self , name , value ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \uff0c \u7b5b\u9009 \u5177\u6709 \u4e0e\u503c value \u5339\u914d \u7684 \u7ed9\u5b9a \u5c5e\u6027 \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a name ( str ) value ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary find ( self , id ) \u8fd4\u56de \u4e0e \u8be5 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u5bf9\u5e94 \u7684 \u84dd\u56fe \u3002 \u53c2\u6570 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorBlueprint Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u5b58\u50a8 \u5728 \u5305\u542b \u84dd\u56fe \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u5185 pos \u4f4d\u7f6e \u7684 \u84dd\u56fe \u3002 Return : 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 - meters ) \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 - meters ) \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 - meters ) - \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 - meters ) - \u8981 \u68c0\u67e5 \u7684 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \u3002 transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u5c40\u90e8 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . CityObjectLabel \u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u5b9e\u4f8b \u53d8\u91cf None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any carla . Client \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002 \u65b9\u6cd5 __ init __ ( self , host = 127.0 . 0.1 , port = 2000 , worker _ threads = 0 ) snippet \u2192 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6784\u9020 \u5668 \u3002 \u53c2\u6570 \uff1a host ( str ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 \u5730\u5740 IP\u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a localhost \uff08 127.0 . 0.1 \uff09 \u3002 port ( int ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c \u968f\u540e \u7684 2001 \u3002 worker _ threads ( int ) - \u7528\u4e8e \u540e\u53f0 \u66f4\u65b0 \u7684 \u5de5\u4f5c \u7ebf\u7a0b \u6570 \u3002 \u5982\u679c \u4e3a 0 \uff0c \u5219 \u4f7f\u7528 \u6240\u6709 \u53ef\u7528 \u7684 \u5e76\u53d1 \u6027 \u3002 apply _ batch ( self , commands ) \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002 \u83b7\u53d6 \u5668 get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World \u8bbe\u7f6e \u5668 set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002 carla . CollisionEvent Inherited from carla . SensorData \u4e3a sensor . other . collision \u5b9a\u4e49 \u78b0\u649e \u6570\u636e \u7684 \u7c7b \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u78b0\u649e \u521b\u5efa \u4e00\u4e2a \u78b0\u649e \u6570\u636e \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u4e2a \u78b0\u649e \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002 carla . Color \u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( int ) \u7ea2\u8272 ( 0 - 255 ) \u3002 g ( int ) \u7eff\u8272 ( 0 - 255 ) \u3002 b ( int ) \u84dd\u8272 ( 0 - 255 ) \u3002 a ( int ) Alpha \u901a\u9053 ( 0 - 255 ) . \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 255 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( int ) g ( int ) b ( int ) a ( int ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . Color ) __ ne __ ( self , other = carla . Color ) __ str __ ( self ) carla . ColorConverter \u5b9a\u4e49 \u53ef \u5e94\u7528 \u4e8e carla . Image \u7684 \u8f6c\u6362 \u6a21\u5f0f \u7684 \u7c7b \uff0c \u4ee5 \u663e\u793a carla . Sensor \u63d0\u4f9b \u7684 \u4fe1\u606f \u3002 \u6df1\u5ea6 \u8f6c\u6362 \u4f1a \u5bfc\u81f4 \u7cbe\u5ea6 \u635f\u5931 \uff0c \u56e0\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6df1\u5ea6 \u68c0\u6d4b \u4e3a \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a 0 \u5230 255 \u4e4b\u95f4 \u7684 \u7070\u5ea6 \u503c \u3002 \u67e5\u770b carla . Sensor . listen \u4e2d \u7684 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u548c \u4fdd\u5b58 \u56fe\u50cf \u7684 \u793a\u4f8b sensor . camera . semantic _ segmentation \u7684 \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002 carla . DVSEvent \u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( int ) X \u50cf\u7d20 \u5750\u6807 \u3002 y ( int ) Y \u50cf\u7d20 \u5750\u6807 \u3002 t ( int ) \u4e8b\u4ef6 \u53d1\u751f \u65f6\u523b \u7684 \u65f6\u95f4 \u6233 \u3002 pol ( bool ) \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 True \u8868\u793a \u6b63\u6570 \uff0c False \u8868\u793a \u8d1f\u6570 \u3002 \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) carla . DVSEventArray \u5728 carla . DVSEvent \u4e2d \u5b9a\u4e49 \u4e8b\u4ef6 \u6d41 \u7684 \u7c7b \u3002 \u6b64\u7c7b \u6d41\u662f \u4efb\u610f \u5927\u5c0f \u7684 \u6570\u7ec4 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e8b\u4ef6 \u7684 \u6570\u91cf \u3002 \u4e3a\u4e86 \u65b9\u4fbf \u8d77 \u89c1 \uff0c \u8be5\u7c7b \u8fd8 \u5b58\u50a8 \u89c6\u91ce \u3001 \u56fe\u50cf \u7684 \u9ad8\u5ea6 \u548c \u5bbd\u5ea6 \u4ee5\u53ca \u65f6\u95f4 \u6233 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( \u5b57\u8282 ) \u65b9\u6cd5 to _ array ( self ) \u6309 \u4ee5\u4e0b \u987a\u5e8f \u5c06 \u4e8b\u4ef6 \u6d41 \u8f6c\u6362 \u4e3a int \u503c \u6570\u7ec4 [ x , y , t , pol ] \u3002 to _ array _ pol ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u8be5 \u6570\u7ec4 \u5177\u6709 \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 to _ array _ t ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \u6233 \u3002 to _ array _ x ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 X \u50cf\u7d20 \u5750\u6807 \u7684 \u6570\u7ec4 \u3002 to _ array _ y ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 Y \u50cf\u7d20 \u5750\u6807 \u6570\u7ec4 \u3002 to _ image ( self ) \u6309\u7167 \u4ee5\u4e0b \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \uff1a \u84dd\u8272 \u8868\u793a \u6b63 \u4e8b\u4ef6 \uff0c \u7ea2\u8272 \u8868\u793a \u8d1f \u4e8b\u4ef6 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . DebugHelper carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002 \u65b9\u6cd5 draw _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u4ece \u5f00\u59cb begin \u5230 \u7ed3\u675f end \u7ed8\u5236 \u4e00\u4e2a \u6307\u5411 \u8be5 \u65b9\u5411 \u7684 \u7bad\u5934 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - meters ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - meters ) - \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 Draws a box , ussually to act for object colliders . Parameters : 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 - meters ) - \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 - 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 _ 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 - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - meters ) - \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 - 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 _ 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 - meters ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - meters ) - \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 - meters ) - \u4eff\u771f \u4e2d \u6587\u672c \u5c45\u4e2d \u7684 \u4f4d\u7f6e \u3002 text ( str ) - \u65e8\u5728 \u5411 \u4e16\u754c \u5c55\u793a \u7684 \u6587\u672c \u3002 draw _ shadow ( bool ) - \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6295\u5c04 \u9634\u5f71 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 carla . EnvironmentObject \u8868\u793a \u5173\u5361 \u4e2d \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u7684 \u7c7b \uff0c \u8be5 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u53ef\u4ee5 \u662f \u4e0e \u5176\u4ed6 \u73af\u5883 \u5bf9\u8c61 \uff08 \u5373 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \uff09 \u5f62\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b9e\u4f8b \u53d8\u91cf transform ( carla . Transform ) \u5305\u542b \u73af\u5883 \u5bf9\u8c61 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u8fb9\u754c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 id ( int ) \u7528\u4e8e \u6807\u8bc6 \u5173\u5361 \u4e2d \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 name ( string ) \u73af\u5883 \u5bf9\u8c61 EnvironmentObject \u7684 \u540d\u79f0 \u3002 type ( carla . CityObjectLabel ) Semantic tag . \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) \u5c06 \u73af\u5883 \u5bf9\u8c61 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u5b83\u4eec \u3002 \u8fd4\u56de \uff1a str carla . FloatColor \u5b9a\u4e49 \u6d6e\u70b9 RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( float ) \u7ea2\u8272 \u3002 g ( float ) \u7eff\u8272 \u3002 b ( float ) \u84dd\u8272 \u3002 a ( float ) Alpha \u901a\u9053 \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor ) carla . GBufferTextureID \u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002 \u5b9e\u4f8b \u53d8\u91cf SceneColor \u7eb9\u7406 \u201c SceneColor \u201d \u5305\u542b \u56fe\u50cf \u7684 \u6700\u7ec8 \u989c\u8272 \u3002 SceneDepth \u7eb9\u7406 \u201c SceneDepth \u201d \u5305\u542b \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a - \u4ee5 \u4e16\u754c \u5355\u4f4d \u4e3a \u7ebf\u6027 \u3002 SceneStencil \u7eb9\u7406 \u201c SceneStencil \u201d \u5305\u542b \u6a21\u677f \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 GBufferA \u7eb9\u7406 \u201c GBufferA \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u6cd5\u7ebf \u5411\u91cf \u3002 Alpha \u901a\u9053 \u5305\u542b \u201c \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u6570\u636e \u201d \u3002 GBufferB \u7eb9\u7406 \u201c GBufferB \u201d \u5206\u522b \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u91d1\u5c5e \u3001 \u955c\u9762 \u548c \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Alpha \u901a\u9053 \u5305\u542b \u4e00\u4e2a \u63a9\u7801 \uff0c \u5176\u4e2d \u4f4e 4 \u4f4d \u8868\u793a \u7740\u8272 \u6a21\u578b \uff0c \u9ad8 4 \u4f4d \u5305\u542b \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 \u3002 GBufferC \u7eb9\u7406 \u201c GBufferC \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \uff0c \u4ee5\u53ca Alpha \u901a\u9053 \u4e2d \u7684 \u95f4\u63a5 \u8f90\u7167 \u7167\u5ea6 \u8f90\u7167\u5ea6 \u3002 \u5982\u679c \u4e0d \u5141\u8bb8 \u9759\u6001 \u95ea\u7535 \uff0c Alpha \u901a\u9053 \u5c06 \u5305\u542b \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 GBufferD \u201c GBufferD \u201d \u7684 \u5185\u5bb9 \u6839\u636e \u6e32\u67d3 \u5bf9\u8c61 \u7684 \u6750\u8d28 \u7740\u8272 \u6a21\u578b ( GBufferB ) \u7684 \u4e0d\u540c \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff1a MSM _ Subsurface ( 2 ) , MSM _ PreintegratedSkin ( 3 ) , MSM _ TwoSidedFoliage ( 6 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 MSM _ ClearCoat ( 4 ) : R : \u900f\u660e \u6d82\u5c42 \u3002 G : \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 MSM _ SubsurfaceProfile ( 5 ) : RGB : \u6b21 \u8868\u9762 \u8f6e\u5ed3 \u3002 MSM _ Hair ( 7 ) : RG : \u4e16\u754c \u6cd5\u7ebf \u3002 B : \u80cc\u5149 \u503c \u3002 MSM _ Cloth ( 8 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : Cloth value . MSM _ Eye ( 9 ) : RG : \u773c \u5207\u7ebf \u3002 B : \u8679\u819c \u63a9\u6a21 \u3002 A : \u8679\u819c \u8ddd\u79bb \u3002 GBufferE \u7eb9\u7406 \u201c GBufferE \u201d \u5305\u542b RGBA \u901a\u9053 \u4e2d \u9884\u5148 \u8ba1\u7b97 \u7684 \u9634\u5f71 \u56e0\u5b50 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 4 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 GBufferF \u7eb9\u7406 \u201c GBufferF \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u5207\u7ebf \u548c Alpha \u901a\u9053 \u4e2d \u7684 \u5f02\u6027 \u5404\u5411\u5f02\u6027 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 5 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 Velocity \u7eb9\u7406 \u201c \u901f\u5ea6 \u201d \u5305\u542b \u573a\u666f \u5bf9\u8c61 \u7684 \u5c4f\u5e55 \u7a7a\u95f4 \u901f\u5ea6 \u3002 SSAO \u7eb9\u7406 \u201c SSAO \u201d \u5305\u542b \u5c4f\u5e55 \u7a7a\u95f4 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u7eb9\u7406 \u3002 CustomDepth \u7eb9\u7406 \u201c CustomDepth \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u6570\u636e \u3002 CustomStencil \u7eb9\u7406 \u201c CustomStencil \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u677f \u6570\u636e \u3002 carla . GearPhysicsControl \u901a\u8fc7 \u5b9a\u4e49 \u6863\u4f4d \u4ee5\u53ca \u4f55\u65f6 \u8fd0\u884c \u8be5 \u6863\u4f4d \u6765 \u63d0\u4f9b \u5bf9 \u8f66\u8f86 \u53d8\u901f \u53d8\u901f\u7bb1 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u7684 \u8bbf\u95ee \u7684 \u7c7b \u3002 carla . VehiclePhysicsControl \u7a0d\u540e \u5c06 \u4f7f\u7528 \u5b83 \u6765 \u5e2e\u52a9 \u4eff\u771f \u7269\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf ratio ( float ) \u9f7f\u8f6e \u7684 \u4f20\u52a8 \u4f20\u52a8\u6bd4 \u3002 down _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94\u964d \u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 up _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94 \u5347\u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 \u65b9\u6cd5 __ init __ ( self , ratio = 1.0 , down _ ratio = 0.5 , up _ ratio = 0.65 ) \u53c2\u6570 \uff1a ratio ( float ) down _ ratio ( float ) up _ ratio ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . GearPhysicsControl ) __ ne __ ( self , other = carla . GearPhysicsControl ) __ str __ ( self ) carla . GeoLocation \u5305\u542b \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u4eff\u771f \u6570\u636e \u7684 \u7c7b \u3002 carla . Map \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u8f6c\u6362 \u4eff\u771f \u4f4d\u7f6e OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u6807\u8bb0 \u3002 \u5b9e\u4f8b \u53d8\u91cf latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - meters ) \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 - degrees ) longitude ( float - degrees ) altitude ( float - meters ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self ) carla . GnssMeasurement Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf altitude ( float - meters ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . IMUMeasurement Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7684 \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 \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 - radians ) \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 - rad / s ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . Image Inherited from carla . SensorData \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 - degrees ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u50cf\u7d20 \u6570\u636e \u7684 \u6241\u5e73 \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002 \u65b9\u6cd5 convert ( self , color _ converter ) \u6309\u7167 color _ converter \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \u3002 \u53c2\u6570 \uff1a color _ converter ( carla . ColorConverter ) save _ to _ disk ( self , path , color _ converter = Raw ) \u4f7f\u7528 \u5982\u4e0b \u6240\u793a \u7684 \u8f6c\u6362 \u8f6c\u6362\u5668 \u6a21\u5f0f color _ converter \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u9ed8\u8ba4 \u8f6c\u6362 \u6a21\u5f0f \u662f Raw \uff0c \u4e0d\u4f1a \u5bf9 \u56fe\u50cf \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5c06 \u5305\u542b \u56fe\u50cf \u7684 \u8def\u5f84 \u3002 color _ converter ( carla . ColorConverter ) - \u9ed8\u8ba4 Raw \u4e0d\u4f1a \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u5f62\u6210 \u56fe\u50cf \u7684 carla . Color \u4e0a\u9762 \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . Junction \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \uff0c \u4f53\u73b0 OpenDRIVE \u6587\u4ef6 \u4e2d \u63cf\u8ff0 \u7684 \u9053\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) OpenDRIVE \u6587\u4ef6 \u4e2d \u627e\u5230 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 bounding _ box ( carla . BoundingBox ) \u5c01\u88c5 \u8fde\u63a5 \u8f66\u9053 \u7684 \u8fb9\u754c \u6846 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - Type of lanes to get the waypoints . \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint ) ) carla . LabelledPoint \u4f7f\u7528 \u8bed\u4e49 \u6807\u7b7e \u8868\u793a \u7a7a\u95f4 \u4f4d\u7f6e \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 carla . Landmark \u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002 \u5b9e\u4f8b \u53d8\u91cf road _ id ( int ) \u5b9a\u4e49 \u6b64\u5730 \u6807\u7684 \u9053\u8def \u7684 OpenDRIVE ID \u3002 \u7531\u4e8e OpenDRIVE \u9053\u8def \u5b9a\u4e49 \uff0c \u8be5 \u9053\u8def \u53ef\u80fd \u4e0e \u5730\u6807 \u5f53\u524d \u5f71\u54cd \u7684 \u9053\u8def \u4e0d\u540c \u3002 \u8fd9\u79cd \u60c5\u51b5 \u4e3b\u8981 \u53d1\u751f \u5728 \u4e0d\u540c \u8def\u7ebf \u7684 \u9053\u8def \u5206\u53c9 \u5904 \u3002 \u793a\u4f8b \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u4e00\u6761 \u5206\u53c9 \u9053\u8def \u4e2d \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u4f46 \u5b83 \u4f1a \u5f71\u54cd \u6240\u6709 \u53ef\u80fd \u7684 \u8def\u7ebf \u3002 distance ( float - meters ) \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 - meters ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - meters ) \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 - degrees ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - meters ) \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 - meters ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - meters ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - meters ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - meters ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ lane _ validities ( self ) \u8fd4\u56de \u5730\u6807 \u5f71\u54cd \u7684 \u8f66\u9053 \u3002 \u7531\u4e8e \u53ef\u80fd \u5b58\u5728 \u5730\u6807 \u65e0\u6548 \u7684 \u7279\u5b9a \u8f66\u9053 \uff0c \u56e0\u6b64 \u8fd4\u56de \u7684 \u662f \u5305\u542b \u53d7 \u5f71\u54cd \u7684 lane _ id \u8303\u56f4 \u7684 \u5bf9 \u5217\u8868 \uff1a \u793a\u4f8b \uff1a \u5728 \u6709 5 \u6761 \u8f66\u9053 \u7684 \u9053\u8def \u4e2d \uff0c \u5176\u4e2d 3 \u4e0d\u53d7 \u6761\u4e0d\u53d7 \u5f71\u54cd \uff1a [ ( from _ lane1 , to _ lane2 ) , ( from _ lane4 , to _ lane5 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( int ) ) carla . LandmarkOrientation \u7528\u4e8e \u5b9a\u4e49 \u9053\u8def \u4e2d \u5730\u6807 \u65b9\u5411 \u7684 \u8f85\u52a9 \u7c7b \u3002 \u8be5 \u5b9a\u4e49 \u5e76\u975e \u76f4\u63a5 \u4ece OpenDRIVE \u8f6c\u6362 \u800c \u6765 \uff0c \u800c\u662f \u4e3a\u4e86 \u4fbf\u4e8e \u7406\u89e3 \u800c \u8fdb\u884c \u4e86 \u8f6c\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf Positive \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5b9a\u4e49 \u65b9\u5411 \u76f8\u540c \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 0 \u8f66\u9053 \u548c \u8d1f \u8f66\u9053 \uff09 \u3002 Negative \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 \u6b63 \u8f66\u9053 \uff09 \u3002 Both \u90fd \u4f1a \u5f71\u54cd \u6cbf \u9053\u8def \u4e24\u4e2a \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 carla . LandmarkType Helper \u7c7b \u5305\u542b OpenDRIVE \u6807\u51c6 \uff08 \u5fb7\u56fd 2017 \uff09 \u4e2d \u9ed8\u8ba4 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u5b9a\u4e49 \u7684 \u4e00\u7ec4 \u5e38\u7528 \u5730\u6807 \u7c7b\u578b \u3002 __ carla . Landmark \u4e0d \u5f15\u7528 \u6b64\u7c7b \u3002 \u5730\u6807 \u7c7b\u578b \u662f \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u6839\u636e \u6240 \u4f7f\u7528 \u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u4e0d\u540c \uff0c \u5176 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6b64\u7c7b \u4ec5 \u901a\u8fc7 \u5c06 \u9ed8\u8ba4 \u96c6\u4e2d \u7684 \u4e00\u4e9b \u6700 \u5e38\u7528 \u7684 \u63cf\u8ff0 \u4e3a \u679a\u4e3e \u6765 \u4f7f \u7ba1\u7406 \u5b83\u4eec \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u3002 \u5b9e\u4f8b \u53d8\u91cf Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002 carla . LaneChange \u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u4e0d \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \uff0c \u53ea\u80fd \u76f4\u884c \u3002 Right \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u53f3\u8f6c \u3002 Left \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u5de6\u8f6c \u3002 Both \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u90fd \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \u3002 carla . LaneInvasionEvent Inherited from carla . SensorData \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5373 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 crossed _ lane _ markings ( list ( carla . LaneMarking ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u7a7f\u8fc7 \u5e76 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . LaneMarking \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \u6536\u96c6 \u6709\u5173 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf color ( carla . LaneMarkingColor ) \u6807\u8bb0 \u7684 \u5b9e\u9645 \u989c\u8272 \u3002 lane _ change ( carla . LaneChange ) \u8de8\u8d8a \u6240\u8ff0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6743\u9650 \u3002 type ( carla . LaneMarkingType ) \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u3002 width ( float ) \u6c34\u5e73 \u8f66\u9053 \u6807\u8bb0 \u539a\u5ea6 \u3002 carla . LaneMarkingColor \u6839\u636e OpenDRIVE 1.4 \u5b9a\u4e49 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other carla . LaneMarkingType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Other Broken Solid SolidSolid SolidBroken BrokenSolid BrokenBroken BottsDots Grass Curb carla . LaneType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u53ef\u80fd \u901a\u9053 \u7c7b\u578b \u7684 \u7c7b \u3002 \u8be5 \u6807\u51c6 \u5b9a\u4e49 \u4e86 \u9053\u8def \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u5229\u7528 \u8def\u70b9 \u6765 \u83b7\u53d6 \u5f53\u524d \u548c \u76f8\u90bb \u8f66\u9053 \u7c7b\u578b \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Driving Stop Shoulder Biking Sidewalk Border Restricted Parking Bidirectional Median Special1 Special2 Special3 RoadWorks Tram Rail Entry Exit OffRamp OnRamp Any \u9664 NONE \u4e4b\u5916 \u7684 \u6240\u6709 \u7c7b\u578b \u3002 carla . LidarDetection carla . LidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u548c \u76f8\u5173 \u5f3a\u5ea6 \u3002 \u5b9e\u4f8b \u53d8\u91cf point ( carla . Location - meters ) 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 \u7ee7\u627f \u81ea carla . SensorData \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 ) Iterate over the carla . LidarDetection retrieved as data . __ 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 - meters ) \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 Inherited from carla . Vector3D \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float - meters ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - meters ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - meters ) 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 - meters \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 Return : carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . Map \u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002 \u5b9e\u4f8b \u53d8\u91cf name ( str ) \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5b83 \u5bf9\u5e94 \u4e8e \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u52a0\u8f7d \u7684 \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 . umap \uff0c \u7136\u540e \u5f15\u7528 . xodr \u9053\u8def \u63cf\u8ff0 \u3002 \u65b9\u6cd5 __ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - meters ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8fd1\u4f3c \u8ddd\u79bb \u3002 \u8fd4\u56de \uff1a list ( carla . Waypoint ) save _ to _ disk ( self , path ) \u5c06 \u5f53\u524d \u6620\u5c04 \u7684 . xodr OpenDRIVE \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u53c2\u6570 \uff1a path - \u4fdd\u5b58 \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 to _ opendrive ( self ) \u4ee5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u8fd4\u56de \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVe \u6587\u4ef6 \u3002 \u8fd4\u56de \uff1a str transform _ to _ geolocation ( self , location ) \u5c06 \u4eff\u771f \u4e2d \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u7ed9\u5b9a \u4f4d\u7f6e location \u8f6c\u6362 \u4e3a carla . GeoLocation \uff0c \u4ed6 \u8868\u793a \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5730\u56fe \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u5728 OpenDRIVE \u6807\u7b7e \u5185 \u5b9a\u4e49 \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) \u8fd4\u56de \uff1a carla . GeoLocation \u83b7\u53d6 \u5668 get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . MapLayer \u8868\u793a \u5730\u56fe \u7684 \u6bcf\u4e2a \u53ef \u7ba1\u7406 \u7ba1\u7406\u5c42 \u7684 \u7c7b \u3002 \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u8b66\u544a \uff1a \u53ea\u6709 \u201c Opt \u201d \u5730\u56fe \u624d\u80fd \u4f7f\u7528 \u5730\u56fe \u56fe\u5c42 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u672a \u9009\u62e9 \u4efb\u4f55 \u56fe\u5c42 \u3002 Buildings Decals Foliage Ground ParkedVehicles Particles Props StreetLights Walls All \u9009\u5b9a \u6240\u6709 \u56fe\u5c42 \u3002 carla . MaterialParameter \u8868\u793a \u6750\u6599 \u53c2\u6570 \u7684 \u7c7b \u3002 \u5e76\u975e \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u90fd \u5305\u542b \u6240\u6709 \u53c2\u6570 \u3002 \u5b9e\u4f8b \u53d8\u91cf Normal \u5bf9\u8c61 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 Diffuse \u7269\u4f53 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 AO _ Roughness _ Metallic _ Emissive \u6bcf\u4e2a \u989c\u8272 \u901a\u9053 \u4ee3\u8868 \u6750\u8d28 \u5c5e\u6027 \u7684 \u7eb9\u7406 \uff08 R \uff1a \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \uff0c G \uff1a \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c B \uff1a \u91d1\u5c5e \uff0c A \uff1a \u67d0\u4e9b \u7269\u4f53 \u4e2d \u7684 \u53d1\u5c04 / \u9ad8\u5ea6 \u8d34\u56fe \uff09 \u3002 Emissive \u53d1\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u4e9b \u7269\u4f53 \u4e2d \u3002 carla . ObstacleDetectionEvent \u7ee7\u627f \u81ea carla . SensorData \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 Inherited from carla . SensorData \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 - degrees ) \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 - meters ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - meters ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - meters ) \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 - meters ) \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 Instance Variables altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - meters ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor . Methods Dunder methods __ str __ ( self ) carla . RadarMeasurement Inherited from carla . SensorData Class that defines and gathers the measures registered by a sensor . other . radar , representing a wall of points in front of the sensor with a distance , angle and velocity in relation to it . The data consists of a carla . RadarDetection array . Learn more about this here . Instance Variables raw _ data ( bytes ) The complete information of the carla . RadarDetection the radar has registered . Methods Getters get _ detection _ count ( self ) Retrieves the number of entries generated , same as __ str __ ( ) . Dunder methods __ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . RadarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self ) carla . Rotation Class that represents a 3D rotation and therefore , an orientation in space . CARLA uses the Unreal Engine coordinates system . This is a Z - up left - handed system . The constructor method follows a specific order of declaration : ( pitch , yaw , roll ) , which corresponds to ( Y - rotation , Z - rotation , X - rotation ) . Unreal Engine ' s coordinates system . Instance Variables pitch ( float - degrees ) Y - axis rotation angle . yaw ( float - degrees ) Z - axis rotation angle . roll ( float - degrees ) X - axis rotation angle . Methods __ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) Parameters : pitch ( float - degrees ) - Y - axis rotation angle . yaw ( float - degrees ) - Z - axis rotation angle . roll ( float - degrees ) - X - axis rotation angle . Warning : The declaration order is different in CARLA ( pitch , yaw , roll ) , and in the Unreal Engine Editor ( roll , pitch , yaw ) . When working in a build from source , don ' t mix up the axes ' rotations . Getters get _ forward _ vector ( self ) Computes the vector pointing forward according to the rotation of the object . Return : carla . Vector3D get _ right _ vector ( self ) Computes the vector pointing to the right according to the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes the vector pointing upwards according to the rotation of the object . Return : carla . Vector3D Dunder methods __ eq __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ ne __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ str __ ( self ) Parses the axis ' orientations to string . carla . RssActorConstellationData Data structure that is provided within the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) . Instance Variables ego _ match _ object ( ad . map . match . Object ) The ego map matched information . ego _ route ( ad . map . route . FullRoute ) The ego route . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . other _ match _ object ( ad . map . match . Object ) The other object ' s map matched information . This is only valid if ' other _ actor ' is not ' None ' . other _ actor ( carla . Actor ) The other actor . This is ' None ' in case of query of default parameters or articial objects of kind ad . rss . world . ObjectType . ArtificialObject with no dedicated ' carla . Actor ' ( as e . g . for the road boundaries at the moment ) . Methods Dunder methods __ str __ ( self ) carla . RssActorConstellationResult Data structure that should be returned by the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) . Instance Variables rss _ calculation _ mode ( ad . rss . map . RssMode ) The calculation mode to be applied with the actor . restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) The mode for restricting speed limit . ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the ego vehicle . actor _ object _ type ( ad . rss . world . ObjectType ) The RSS object type to be used for the actor . actor _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the actor . Methods Dunder methods __ str __ ( self ) carla . RssEgoDynamicsOnRoute Part of the data contained inside a carla . RssResponse describing the state of the vehicle . The parameters include its current dynamics , and how it is heading regarding the target route . Instance Variables ego _ speed ( ad . physics . Speed ) The ego vehicle ' s speed . min _ stopping _ distance ( ad . physics . Distance ) The current minimum stopping distance . ego _ center ( ad . map . point . ENUPoint ) The considered enu position of the ego vehicle . ego _ heading ( ad . map . point . ENUHeading ) The considered heading of the ego vehicle . ego _ center _ within _ route ( bool ) States if the ego vehicle ' s center is within the route . crossing _ border ( bool ) States if the vehicle is already crossing one of the lane borders . route _ heading ( ad . map . point . ENUHeading ) The considered heading of the route . route _ nominal _ center ( ad . map . point . ENUPoint ) The considered nominal center of the current route . heading _ diff ( ad . map . point . ENUHeading ) The considered heading diff towards the route . route _ speed _ lat ( ad . physics . Speed ) The ego vehicle ' s speed component lat regarding the route . route _ speed _ lon ( ad . physics . Speed ) The ego vehicle ' s speed component lon regarding the route . route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route . route _ accel _ lon ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lon regarding the route . avg _ route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) The ego acceleration component lon regarding the route smoothened by an average filter . Methods Dunder methods __ str __ ( self ) carla . RssLogLevel Enum declaration used in carla . RssSensor to set the log level . Instance Variables trace debug info warn err critical off carla . RssResponse Inherited from carla . SensorData Class that contains the output of a carla . RssSensor . This is the result of the RSS calculations performed for the parent vehicle of the sensor . A carla . RssRestrictor will use the data to modify the carla . VehicleControl of the vehicle . Instance Variables response _ valid ( bool ) States if the response is valid . It is False if calculations failed or an exception occured . proper _ response ( ad . rss . state . ProperResponse ) The proper response that the RSS calculated for the vehicle . rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) Detailed RSS states at the current moment in time . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . world _ model ( ad . rss . world . WorldModel ) World model used for calculations . situation _ snapshot ( ad . rss . situation . SituationSnapshot ) Detailed RSS situations extracted from the world model . Methods Dunder methods __ str __ ( self ) carla . RssRestrictor These objects apply restrictions to a carla . VehicleControl . It is part of the Carla implementation of the C++ Library for Responsibility Sensitive Safety . This class works hand in hand with a rss sensor , which provides the data of the restrictions to be applied . Methods restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) Applies the safety restrictions given by a carla . RssSensor to a carla . VehicleControl . Parameters : vehicle _ control ( carla . VehicleControl ) - The input vehicle control to be restricted . proper _ response ( ad . rss . state . ProperResponse ) - Part of the response generated by the sensor . Contains restrictions to be applied to the acceleration of the vehicle . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - Part of the response generated by the sensor . Contains dynamics and heading of the vehicle regarding its route . vehicle _ physics ( carla . VehiclePhysicsControl ) - The current physics of the vehicle . Used to apply the restrictions properly . Return : carla . VehicleControl Setters set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level . carla . RssRoadBoundariesMode Enum declaration used in carla . RssSensor to enable or disable the stay on road feature . In summary , this feature considers the road boundaries as virtual objects . The minimum safety distance check is applied to these virtual walls , in order to make sure the vehicle does not drive off the road . Instance Variables On Enables the stay on road feature . Off Disables the stay on road feature . carla . RssSensor Inherited from carla . Sensor This sensor works a bit differently than the rest . Take look at the specific documentation , and the rss sensor reference to gain full understanding of it . The RSS sensor uses world information , and a RSS library to make safety checks on a vehicle . The output retrieved by the sensor is a carla . RssResponse . This will be used by a carla . RssRestrictor to modify a carla . VehicleControl before applying it to a vehicle . Instance Variables ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the ego vehicle if no actor constellation callback is registered . other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the rest of vehicles if no actor constellation callback is registered . pedestrian _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for pedestrians if no actor constellation callback is registered . road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) Switches the stay on road feature . By default is Off . routing _ targets ( vector < carla . Transform > ) The current list of targets considered to route the vehicle . If no routing targets are defined , a route is generated at random . Methods append _ routing _ target ( self , routing _ target ) Appends a new target position to the current route of the vehicle . Parameters : routing _ target ( carla . Transform ) - New target point for the route . Choose these after the intersections to force the route to take the desired turn . drop _ route ( self ) Discards the current route . If there are targets remaining in routing _ targets , creates a new route using those . Otherwise , a new route is created at random . register _ actor _ constellation _ callback ( self , callback ) Register a callback to customize a carla . RssActorConstellationResult . By this callback the settings of RSS parameters are done per actor constellation and the settings ( ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics ) have no effect . Parameters : callback - The function to be called whenever a RSS situation is about to be calculated . reset _ routing _ targets ( self ) Erases the targets that have been appended to the route . Setters set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level . set _ map _ log _ level ( self , log _ level ) Sets the map log level . Parameters : log _ level ( carla . RssLogLevel ) - New map log level . Dunder methods __ str __ ( self ) carla . SemanticLidarDetection Data contained inside a carla . SemanticLidarMeasurement . Each of these represents one of the points in the cloud with its location , the cosine of the incident angle , index of the object hit , and its semantic tag . Instance Variables point ( carla . Location - meters ) [ x , y , z ] coordinates of the point . cos _ inc _ angle ( float ) Cosine of the incident angle between the ray , and the normal of the hit object . object _ idx ( uint ) ID of the actor hit by the ray . object _ tag ( uint ) \u8bed\u4e49 \u6807\u7b7e of the component hit by the ray . Methods Dunder methods __ str __ ( self ) carla . SemanticLidarMeasurement Inherited from carla . SensorData Class that defines the semantic LIDAR data retrieved by a sensor . lidar . ray _ cast _ semantic . This essentially simulates a rotating LIDAR using ray - casting . Learn more about this here . Instance Variables channels ( int ) Number of lasers shot . horizontal _ angle ( float - radians ) Horizontal angle the LIDAR is rotated at the time of the measurement . raw _ data ( bytes ) Received list of raw detection points . Each point consists of [ x , y , z ] coordinates plus the cosine of the incident angle , the index of the hit actor , and its semantic tag . Methods save _ to _ disk ( self , path ) Saves the point cloud to disk as a . ply file describing data from 3D scanners . The files generated are ready to be used within MeshLab , an open - source system for processing said files . Just take into account that axis may differ from Unreal Engine and so , need to be reallocated . Parameters : path ( str ) Getters get _ point _ count ( self , channel ) Retrieves the number of points sorted by channel that are generated by this measure . Sorting by channel allows to identify the original channel for every point . Parameters : channel ( int ) Dunder methods __ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self ) carla . Sensor Inherited from carla . Actor Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - Depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector . Instance Variables is _ listening ( boolean ) When True the sensor will be waiting for data . Methods is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture . Dunder methods __ str __ ( self ) carla . SensorData Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement . Instance Variables frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated . carla . TextureColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel . Instance Variables width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . Methods __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color ) Setters set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . TextureFloatColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel . Instance Variables width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . Methods __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor ) Setters set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . Timestamp Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data . Instance Variables frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds . Methods __ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds ) Dunder methods __ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self ) carla . TrafficLight Inherited from carla . TrafficSign A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually . Instance Variables state ( carla . TrafficLightState ) Current state of the traffic light . Methods freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . Return : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator . Getters get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . Return : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . Return : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . Return : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . Return : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . Return : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . Return : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . Return : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . Return : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ yellow _ time Setters set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . Getter : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) Getter : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) Getter : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) Getter : carla . TrafficLight . get _ yellow _ time Dunder methods __ 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 Instance Variables Red Yellow Green Off Unknown carla . TrafficManager The traffic manager is a module built on top of the CARLA API in C++ . It handles any group of vehicles set to autopilot mode to populate the simulation with realistic urban traffic conditions and give the chance to user to customize some behaviours . The architecture of the traffic manager is divided in five different goal - oriented stages and a PID controller where the information flows until eventually , a carla . VehicleControl is applied to every vehicle registered in a traffic manager . In order to learn more , visit the documentation regarding this module . Methods auto _ lane _ change ( self , actor , enable ) Turns on or off lane changing behaviour for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle whose settings are changed . enable ( bool ) - True is default and enables lane changes . False will disable them . collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) Tunes on / off collisions between a vehicle and another specific actor . In order to ignore all other vehicles , traffic lights or walkers , use the specific ignore methods described in this same section . Parameters : reference _ actor ( carla . Actor ) - Vehicle that is going to ignore collisions . other _ actor ( carla . Actor ) - The actor that reference _ actor is going to ignore collisions with . detect _ collision ( bool ) - True is default and enables collisions . False will disable them . distance _ to _ leading _ vehicle ( self , actor , distance ) Sets the minimum distance in meters that a vehicle has to keep with the others . The distance is in meters and will affect the minimum moving distance . It is computed from front to back of the vehicle objects . Parameters : actor ( carla . Actor ) - Vehicle whose minimum distance is being changed . distance ( float - meters ) - Meters between both vehicles . force _ lane _ change ( self , actor , direction ) Forces a vehicle to change either to the lane on its left or right , if existing , as indicated in direction . This method applies the lane change no matter what , disregarding possible collisions . Parameters : actor ( carla . Actor ) - Vehicle being forced to change lanes . direction ( bool ) - Destination lane . True is the one on the right and False is the left one . global _ lane _ offset ( self , offset ) Sets a global lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : offset ( float ) - Lane offset displacement from the center line . global _ percentage _ speed _ difference ( self , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : percentage ( float ) - Percentage difference between intended speed and the current limit . ignore _ lights _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that traffic lights will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore traffic lights . perc ( float ) - Between 0 and 100 . Amount of times traffic lights will be ignored . ignore _ signs _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that stop signs will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore stop signs . perc ( float ) - Between 0 and 100 . Amount of times stop signs will be ignored . ignore _ vehicles _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with another vehicle will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore other vehicles . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . ignore _ walkers _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with walkers will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore walkers on scene . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . keep _ right _ rule _ percentage ( self , actor , perc ) During the localization stage , this method sets a percent chance that vehicle will follow the keep right rule , and stay in the right lane . Parameters : actor ( carla . Actor ) - Vehicle whose behaviour is being changed . perc ( float ) - Between 0 and 100 . Amount of times the vehicle will follow the keep right rule . random _ left _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a left lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . random _ right _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a right lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . shut _ down ( self ) Shuts down the traffic manager . update _ vehicle _ lights ( self , actor , do _ update ) Sets if the Traffic Manager is responsible of updating the vehicle lights , or not . Default is False . The traffic manager will not change the vehicle light status of a vehicle , unless its auto _ update _ status is st to True . Parameters : actor ( carla . Actor ) - Vehicle whose lights status is being changed . do _ update ( bool ) - If True the traffic manager will manage the vehicle lights for the specified vehicle . vehicle _ lane _ offset ( self , actor , offset ) Sets a lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : actor ( carla . Actor ) - Vehicle whose lane offset behaviour is being changed . offset ( float ) - Lane offset displacement from the center line . vehicle _ percentage _ speed _ difference ( self , actor , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : actor ( carla . Actor ) - Vehicle whose speed behaviour is being changed . percentage ( float ) - Percentage difference between intended speed and the current limit . Getters get _ all _ actions ( self , actor ) Returns all known actions ( i . e . road options and waypoints ) that an actor controlled by the Traffic Manager will perform in its next steps . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of lists with each element as follows - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ next _ action ( self , actor ) Returns the next known road option and waypoint that an actor controlled by the Traffic Manager will follow . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of two elements - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ port ( self ) Returns the port where the Traffic Manager is connected . If the object is a TM - Client , it will return the port of its TM - Server . Read the documentation to learn the difference . Return : uint16 Setters set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) Sets the upper and lower boundaries for dormant actors to be respawned near the hero vehicle . Parameters : lower _ bound ( float ) - The minimum distance in meters from the hero vehicle that a dormant actor will be respawned . upper _ bound ( float ) - The maximum distance in meters from the hero vehicle that a dormant actor will be respawned . Warning : The upper _ bound cannot be higher than the actor _ active _ distance . The lower _ bound cannot be less than 25 . set _ desired _ speed ( self , actor , speed ) Sets the speed of a vehicle to the specified value . Parameters : actor ( carla . Actor ) - Vehicle whose speed is being changed . speed ( float ) - Desired speed at which the vehicle will move . set _ global _ distance _ to _ leading _ vehicle ( self , distance ) Sets the minimum distance in meters that vehicles have to keep with the rest . The distance is in meters and will affect the minimum moving distance . It is computed from center to center of the vehicle objects . Parameters : distance ( float - meters ) - Meters between vehicles . set _ hybrid _ physics _ mode ( self , enabled = False ) Enables or disables the hybrid physics mode . In this mode , vehicle ' s farther than a certain radius from the ego vehicle will have their physics disabled . Computation cost will be reduced by not calculating vehicle dynamics . Vehicles will be teleported . Parameters : enabled ( bool ) - If True , enables the hybrid physics . set _ hybrid _ physics _ radius ( self , r = 50.0 ) With hybrid physics on , changes the radius of the area of influence where physics are enabled . Parameters : r ( float - meters ) - New radius where physics are enabled . set _ osm _ mode ( self , mode _ switch = True ) Enables or disables the OSM mode . This mode allows the user to run TM in a map created with the OSM feature . These maps allow having dead - end streets . Normally , if vehicles cannot find the next waypoint , TM crashes . If OSM mode is enabled , it will show a warning , and destroy vehicles when necessary . Parameters : mode _ switch ( bool ) - If True , the OSM mode is enabled . set _ path ( self , actor , path ) Sets a list of locations for a vehicle to follow while controlled by the Traffic Manager . Parameters : actor ( carla . Actor ) - The actor that must follow the given path . path ( list ) - The list of carla . Locations for the actor to follow . Warning : Ensure that the road topology doesn ' t impede the given path . set _ random _ device _ seed ( self , value ) Sets a specific random seed for the Traffic Manager , thereby setting it to be deterministic . Parameters : value ( int ) - Seed value for the random number generation of the Traffic Manager . set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) If True , vehicles in large maps will respawn near the hero vehicle when they become dormant . Otherwise , they will stay dormant until they are within actor _ active _ distance of the hero vehicle again . Parameters : mode _ switch ( bool ) set _ route ( self , actor , path ) Sets a list of route instructions for a vehicle to follow while controlled by the Traffic Manager . The possible route instructions are ' Left ' , ' Right ' , ' Straight ' . Parameters : actor ( carla . Actor ) - The actor that must follow the given route instructions . path ( list ) - The list of route instructions ( string ) for the vehicle to follow . Warning : Ensure that the lane topology doesn ' t impede the given route . set _ synchronous _ mode ( self , mode _ switch = True ) Sets the Traffic Manager to synchronous mode . In a multiclient situation , only the TM - Server can tick . Similarly , in a multiTM situation , only one TM - Server must tick . Use this method in the client that does the world tick , and right after setting the world to synchronous mode , to set which TM will be the master while in sync . Parameters : mode _ switch ( bool ) - If True , the TM synchronous mode is enabled . Warning : If the server is set to synchronous mode , the TM must be set to synchronous mode too in the same client that does the tick . carla . TrafficSign Inherited from carla . Actor Traffic signs appearing in the simulation except for traffic lights . These have their own class inherited from this in carla . TrafficLight . Right now , speed signs , stops and yields are mainly the ones implemented , but many others are borne in mind . Instance Variables trigger _ volume A carla . BoundingBox situated near a traffic sign where the carla . Actor who is inside can know about it . 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 Instance Variables 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 Methods __ init __ ( self , location , rotation ) Parameters : location ( carla . Location ) rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) transform ( self , in _ point ) Translates a 3D point from local to global coordinates using the current transformation as frame of reference . Parameters : in _ point ( carla . Location ) - Location in the space to which the transformation will be applied . transform _ vector ( self , in _ vector ) Rotates a vector using the current transformation as frame of reference , without applying translation . Use this to transform , for example , a velocity . Parameters : in _ vector ( carla . Vector3D ) - Vector to which the transformation will be applied . Getters get _ forward _ vector ( self ) Computes a forward vector using the rotation of the object . Return : carla . Vector3D get _ inverse _ matrix ( self ) Computes the 4 - matrix representation of the inverse transformation . Return : list ( list ( float ) ) get _ matrix ( self ) Computes the 4 - matrix representation of the transformation . Return : list ( list ( float ) ) get _ right _ vector ( self ) Computes a right vector using the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes an up vector using the rotation of the object . Return : carla . Vector3D Dunder methods __ eq __ ( self , other = carla . Transform ) Returns True if both location and rotation are equal for this and other . Return : bool __ ne __ ( self , other = carla . Transform ) Returns True if any location and rotation are not equal for this and other . Return : bool __ str __ ( self ) Parses both location and rotation to string . Return : str carla . Vector2D Helper class to perform 2D operations . Instance Variables x ( float ) X - axis value . y ( float ) Y - axis value . Methods __ init __ ( self , x = 0.0 , y = 0.0 ) Parameters : x ( float ) y ( float ) length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float Dunder methods __ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D ) carla . Vector3D Helper class to perform 3D operations . Instance Variables x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value . Methods __ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) Parameters : x ( float ) y ( float ) z ( float ) cross ( self , vector ) Computes the cross product between two vectors . Parameters : vector ( carla . Vector3D ) Return : carla . Vector3D distance ( self , vector ) Computes the distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ 2d ( self , vector ) Computes the 2 - dimensional distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared ( self , vector ) Computes the squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared _ 2d ( self , vector ) Computes the 2 - dimensional squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot ( self , vector ) Computes the dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot _ 2d ( self , vector ) Computes the 2 - dimensional dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float Getters get _ vector _ angle ( self , vector ) Computes the angle between a pair of 3D vectors in radians . Parameters : vector ( carla . Vector3D ) Return : float Dunder methods __ abs __ ( self ) Returns a Vector3D with the absolute value of the components x , y and z . Return : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D ) carla . Vehicle Inherited from carla . Actor One of the most important groups of actors in CARLA . These include any type of vehicle from cars to trucks , motorbikes , vans , bycicles and also official vehicles such as police cars . A wide set of these actors is provided in carla . BlueprintLibrary to facilitate differente requirements . Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client - side by the traffic manager . Instance Variables bounding _ box ( carla . BoundingBox ) Bounding box containing the geometry of the vehicle . Its location and rotation are relative to the vehicle it is attached to . Methods apply _ ackermann _ control ( self , control ) Applies an Ackermann control object on the next tick . Parameters : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) Applies a new Ackermann control settings to this vehicle in the next tick . Parameters : settings ( carla . AckermannControllerSettings ) Warning : This method does call the simulator . apply _ control ( self , control ) Applies a control object on the next tick , containing driving parameters such as throttle , steering or gear shifting . Parameters : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) Applies a physics control object in the next tick containing the parameters that define the vehicle as a corporeal body . E . g . : moment of inertia , mass , drag coefficient and many more . Parameters : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) Close the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to close all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . enable _ carsim ( self , simfile _ path ) Enables the CarSim physics solver for this particular vehicle . In order for this function to work , there needs to be a valid license manager running on the server side . The control inputs are redirected to CarSim which will provide the position and orientation of the vehicle for every frame . Parameters : simfile _ path ( str ) - Path to the . simfile file with the parameters of the simulation . enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) Enables Chrono physics on a spawned vehicle . Parameters : max _ substeps ( int ) - Max number of Chrono substeps . max _ substep _ delta _ time ( int ) - Max size of substep . vehicle _ json ( str ) - Path to vehicle json file relative to base _ json _ path . powertrain _ json ( str ) - Path to powertrain json file relative to base _ json _ path . tire _ json ( str ) - Path to tire json file relative to base _ json _ path . base _ json _ path ( str ) - Path to chrono / data / vehicle folder . E . g . , / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( the final / character is required ) . Note : Ensure that you have started the CARLA server with the ARGS = \" -- chrono \" flag . You will not be able to use Chrono physics without this flag set . Warning : Collisions are not supported . When a collision is detected , physics will revert to the default CARLA physics . is _ at _ traffic _ light ( self ) Vehicles will be affected by a traffic light when the light is red and the vehicle is inside its bounding box . The client returns whether a traffic light is affecting this vehicle according to last tick ( it does not call the simulator ) . Return : bool open _ door ( self , door _ idx ) Open the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to open all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . show _ debug _ telemetry ( self , enabled = True ) Enables or disables the telemetry on this vehicle . This shows information about the vehicles current state and forces applied to it in the spectator window . Only information for one vehicle can be shown so that , if you enable a second one , the previous will be automatically disabled . Parameters : enabled ( bool ) use _ carsim _ road ( self , enabled ) Enables or disables the usage of CarSim vs terrain file specified in the . simfile . By default this option is disabled and CarSim uses unreal engine methods to process the geometry of the scene . Parameters : enabled ( bool ) Getters get _ ackermann _ controller _ settings ( self ) Returns the last Ackermann control settings applied to this vehicle . Return : carla . AckermannControllerSettings Warning : This method does call the simulator to retrieve the value . get _ control ( self ) The client returns the control applied in the last tick . The method does not call the simulator . Return : carla . VehicleControl get _ failure _ state ( self ) Vehicle have failure states , to indicate that it is incapable of continuing its route . This function returns the vehicle ' s specific failure state , or in other words , the cause that resulted in it . Return : carla . VehicleFailureState get _ light _ state ( self ) Returns a flag representing the vehicle light state , this represents which lights are active or not . Return : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) The simulator returns the last physics control applied to this vehicle . Return : carla . VehiclePhysicsControl Warning : This method does call the simulator to retrieve the value . get _ speed _ limit ( self ) The client returns the speed limit affecting this vehicle according to last tick ( it does not call the simulator ) . The speed limit is updated when passing by a speed limit signal , so a vehicle might have none right after spawning . Return : float - km / h get _ traffic _ light ( self ) Retrieves the traffic light actor affecting this vehicle ( if any ) according to last tick . The method does not call the simulator . Return : carla . TrafficLight get _ traffic _ light _ state ( self ) The client returns the state of the traffic light affecting this vehicle according to last tick . The method does not call the simulator . If no traffic light is currently affecting the vehicle , returns green . Return : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) Returns the physics angle in degrees of a vehicle ' s wheel . Parameters : wheel _ location ( carla . VehicleWheelLocation ) Return : float Note : Returns the angle based on the physics of the wheel , not the visual angle . Setters set _ autopilot ( self , enabled = True , port = 8000 ) Registers or deletes the vehicle from a Traffic Manager ' s list . When True , the Traffic Manager passed as parameter will move the vehicle around . The autopilot takes place client - side . Parameters : enabled ( bool ) port ( uint16 ) - The port of the TM - Server where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 . set _ light _ state ( self , light _ state ) Sets the light state of a vehicle using a flag that represents the lights that are on and off . Parameters : light _ state ( carla . VehicleLightState ) Getter : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 Sets the angle of a vehicle ' s wheel visually . Parameters : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) Warning : Does not affect the physics of the vehicle . Dunder methods __ str __ ( self ) carla . VehicleAckermannControl Manages the basic movement of a vehicle using Ackermann driving controls . Instance Variables steer ( float ) Desired steer ( rad ) . Positive value is to the right . Default is 0.0 . steer _ speed ( float ) Steering velocity ( rad / s ) . Zero steering angle velocity means change the steering angle as quickly as possible . Default is 0.0 . speed ( float ) Desired speed ( m / s ) . Default is 0.0 . acceleration ( float ) Desired acceleration ( m / s2 ) Default is 0.0 . jerk ( float ) Desired jerk ( m / s3 ) . Default is 0.0 . Methods __ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) Parameters : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float ) Dunder methods __ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self ) carla . VehicleControl Manages the basic movement of a vehicle using typical driving controls . Instance Variables throttle ( float ) A scalar value to control the vehicle throttle [ 0.0 , 1.0 ] . Default is 0.0 . steer ( float ) A scalar value to control the vehicle steering [ - 1.0 , 1.0 ] . Default is 0.0 . brake ( float ) A scalar value to control the vehicle brake [ 0.0 , 1.0 ] . Default is 0.0 . hand _ brake ( bool ) Determines whether hand brake will be used . Default is False . reverse ( bool ) Determines whether the vehicle will move backwards . Default is False . manual _ gear _ shift ( bool ) Determines whether the vehicle will be controlled by changing gears manually . Default is False . gear ( int ) States which gear is the vehicle running on . Methods __ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) Parameters : throttle ( float ) - Scalar value between [ 0.0 , 1.0 ] . steer ( float ) - Scalar value between [ 0.0 , 1.0 ] . brake ( float ) - Scalar value between [ 0.0 , 1.0 ] . hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int ) Dunder methods __ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self ) carla . VehicleDoor Possible index representing the possible doors that can be open . Notice that not all possible doors are able to open in some vehicles . Instance Variables FL Front left door . FR Front right door . RL Back left door . RR Back right door . All Represents all doors . carla . VehicleFailureState Enum containing the different failure states of a vehicle , from which the it cannot recover . These are returned by get _ failure _ state ( ) and only Rollover is currently implemented . Instance Variables NONE Rollover Engine TirePuncture carla . VehicleLightState Class that recaps the state of the lights of a vehicle , these can be used as a flags . E . g : VehicleLightState . HighBeam & VehicleLightState . Brake will return True when both are active . Lights are off by default in any situation and should be managed by the user via script . The blinkers blink automatically . Warning : Right now , not all vehicles have been prepared to work with this functionality , this will be added to all of them in later updates . Instance Variables NONE All lights off . Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 This is reserved for certain vehicles that can have special lights , like a siren . Special2 This is reserved for certain vehicles that can have special lights , like a siren . All All lights on . carla . VehiclePhysicsControl Summarizes the parameters that will be used to simulate a carla . Vehicle as a physical object . The specific settings for the wheels though are stipulated using carla . WheelPhysicsControl . Instance Variables torque _ curve ( list ( carla . Vector2D ) ) Curve that indicates the torque measured in Nm for a specific RPM of the vehicle ' s engine . max _ rpm ( float ) The maximum RPM of the vehicle ' s engine . moi ( float - kg * m 2 ) The moment of inertia of the vehicle ' s engine . damping _ rate _ full _ throttle ( float ) Damping ratio when the throttle is maximum . damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) Damping ratio when the throttle is zero with clutch engaged . damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) Damping ratio when the throttle is zero with clutch disengaged . use _ gear _ autobox ( bool ) If True , the vehicle will have an automatic transmission . gear _ switch _ time ( float - seconds ) Switching time between gears . clutch _ strength ( float - kg * m 2 / s ) Clutch strength of the vehicle . final _ ratio ( float ) Fixed ratio from transmission to wheels . forward _ gears ( list ( carla . GearPhysicsControl ) ) List of objects defining the vehicle ' s gears . mass ( float - kilograms ) Mass of the vehicle . drag _ coefficient ( float ) Drag coefficient of the vehicle ' s chassis . center _ of _ mass ( carla . Vector3D - meters ) Center of mass of the vehicle . steering _ curve ( list ( carla . Vector2D ) ) Curve that indicates the maximum steering for a specific forward speed . use _ sweep _ wheel _ collision ( bool ) Enable the use of sweep for wheel collision . By default , it is disabled and it uses a simple raycast from the axis to the floor for each wheel . This option provides a better collision model in which the full volume of the wheel is checked against collisions . wheels ( list ( carla . WheelPhysicsControl ) ) List of wheel physics objects . This list should have 4 elements , where index 0 corresponds to the front left wheel , index 1 corresponds to the front right wheel , index 2 corresponds to the back left wheel and index 3 corresponds to the back right wheel . For 2 wheeled vehicles , set the same values for both front and back wheels . Methods __ 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 constructor . Parameters : 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 ) Dunder methods __ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self ) carla . VehicleWheelLocation enum representing the position of each wheel on a vehicle . Used to identify the target wheel when setting an angle in carla . Vehicle . set _ wheel _ steer _ direction or carla . Vehicle . get _ wheel _ steer _ angle . Instance Variables FL _ Wheel Front left wheel of a 4 wheeled vehicle . FR _ Wheel Front right wheel of a 4 wheeled vehicle . BL _ Wheel Back left wheel of a 4 wheeled vehicle . BR _ Wheel Back right wheel of a 4 wheeled vehicle . Front _ Wheel Front wheel of a 2 wheeled vehicle . Back _ Wheel Back wheel of a 2 wheeled vehicle . carla . Walker Inherited from carla . Actor This class inherits from the carla . Actor and defines pedestrians in the simulation . Walkers are a special type of actor that can be controlled either by an AI ( carla . WalkerAIController ) or manually via script , using a series of carla . WalkerControl to move these and their skeletons . Methods apply _ control ( self , control ) On the next tick , the control will move the walker in a certain direction with a certain speed . Jumps can be commanded too . Parameters : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) Set the blending value of the custom pose with the animation . The values can be : 0 : will show only the animation 1 : will show only the custom pose ( set by the user with set _ bones ( ) ) any other : will interpolate all the bone positions between animation and the custom pose . Parameters : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) Hide the custom pose and show the animation ( same as calling blend _ pose ( 0 ) ) . show _ pose ( self ) Show the custom pose and hide the animation ( same as calling blend _ pose ( 1 ) ) . Getters get _ bones ( self ) Return the structure with all the bone transformations from the actor . For each bone , we get the name and its transform in three different spaces : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent . Return : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) The client returns the control applied to this walker during last tick . The method does not call the simulator . Return : carla . WalkerControl get _ pose _ from _ animation ( self ) Make a copy of the current animation frame as the custom pose . Initially the custom pose is the neutral pedestrian pose . Setters set _ bones ( self , bones ) Set the bones of the actor . For each bone we want to set we use a relative transform . Only the bones in this list will be set . For each bone you need to setup this info : name : bone name relative : transform based on the bone parent . Parameters : bones ( carla . WalkerBoneControlIn - list of pairs ( bone _ name , transform ) for the bones that we want to set ) Getter : carla . Walker . get _ bones Dunder methods __ str __ ( self ) carla . WalkerAIController Inherited from carla . Actor Class that conducts AI control for a walker . The controllers are defined as actors , but they are quite different from the rest . They need to be attached to a parent actor during their creation , which is the walker they will be controlling ( take a look at carla . World if you are yet to learn on how to spawn actors ) . They also need for a special blueprint ( already defined in carla . BlueprintLibrary as \" controller . ai . walker \" ) . This is an empty blueprint , as the AI controller will be invisible in the simulation but will follow its parent around to dictate every step of the way . Methods go _ to _ location ( self , destination ) Sets the destination that the pedestrian will reach . Parameters : destination ( carla . Location - meters ) start ( self ) Enables AI control for its parent walker . stop ( self ) snippet \u2192 Disables AI control for its parent walker . Setters set _ max _ speed ( self , speed = 1.4 ) Sets a speed for the walker in meters per second . Parameters : speed ( float - m / s ) - An easy walking speed is set by default . Dunder methods __ str __ ( self ) carla . WalkerBoneControlIn This class grants bone specific manipulation for walker . The skeletons of walkers have been unified for clarity and the transform applied to each bone are always relative to its parent . Take a look here to learn more on how to create a walker and define its movement . Instance Variables bone _ transforms ( list ( [ name , transform ] ) ) List with the data for each bone we want to set : name : bone name relative : transform based on the bone parent . Methods __ init __ ( self , list ( name , transform ) ) Initializes an object containing moves to be applied on tick . These are listed with the name of the bone and the transform that will be applied to it . Parameters : list ( name , transform ) ( tuple ) Dunder methods __ str __ ( self ) carla . WalkerBoneControlOut This class is used to return all bone positions of a pedestrian . For each bone we get its name and its transform in three different spaces ( world , actor and relative ) . Instance Variables bone _ transforms ( list ( [ name , world , actor , relative ] ) ) List of one entry per bone with this information : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent . Methods Dunder methods __ str __ ( self ) carla . WalkerControl This class defines specific directions that can be commanded to a carla . Walker to control it via script . AI control can be settled for walkers , but the control used to do so is carla . WalkerAIController . Instance Variables direction ( carla . Vector3D ) Vector using global coordinates that will correspond to the direction of the walker . speed ( float - m / s ) A scalar value to control the walker ' s speed . jump ( bool ) If True , the walker will perform a jump . Methods __ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) Parameters : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool ) Dunder methods __ eq __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if these are all the same . __ ne __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if any of these differ . __ str __ ( self ) carla . Waypoint Waypoints in CARLA are described as 3D directed points . They have a carla . Transform which locates the waypoint in a road and orientates it according to the lane . They also store the road information belonging to said point regarding its lane and lane markings . All the information regarding waypoints and the waypoint API is retrieved as provided by the OpenDRIVE file . Once the client asks for the map object to the server , no longer communication will be needed . Instance Variables id ( int ) The identifier is generated using a hash combination of the road , section , lane and s values that correspond to said point in the OpenDRIVE geometry . The s precision is set to 2 centimeters , so 2 waypoints closer than 2 centimeters in the same road , section and lane , will have the same identificator . transform ( carla . Transform ) Position and orientation of the waypoint according to the current lane information . This data is computed the first time it is accessed . It is not created right away in order to ease computing costs when lots of waypoints are created but their specific transform is not needed . road _ id ( int ) OpenDRIVE road ' s id . section _ id ( int ) OpenDRIVE section ' s id , based on the order that they are originally defined . is _ junction ( bool ) True if the current Waypoint is on a junction as defined by OpenDRIVE . junction _ id ( int ) OpenDRIVE junction ' s id . For more information refer to OpenDRIVE documentation . lane _ id ( int ) OpenDRIVE lane ' s id , this value can be positive or negative which represents the direction of the current lane with respect to the road . For more information refer to OpenDRIVE documentation . s ( float ) OpenDRIVE s value of the current position . lane _ width ( float ) Horizontal size of the road at current s . lane _ change ( carla . LaneChange ) Lane change definition of the current Waypoint ' s location , based on the traffic rules defined in the OpenDRIVE file . It states if a lane change can be done and in which direction . lane _ type ( carla . LaneType ) The lane type of the current Waypoint , based on OpenDRIVE 1.4 standard . right _ lane _ marking ( carla . LaneMarking ) The right lane marking information based on the direction of the Waypoint . left _ lane _ marking ( carla . LaneMarking ) The left lane marking information based on the direction of the Waypoint . Methods next ( self , distance ) Returns a list of waypoints at a certain approximate distance from the current one . It takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the next waypoints . Return : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) Returns a list of waypoints from this to the end of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint ) previous ( self , distance ) This method does not return the waypoint previously visited by an actor , but a list of waypoints at an approximate distance but in the opposite direction of the lane . Similarly to next ( ) , it takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the previous waypoints . Return : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) Returns a list of waypoints from this to the start of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint ) Getters get _ junction ( self ) If the waypoint belongs to a junction this method returns the associated junction object . Otherwise returns null . Return : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) Returns a list of landmarks in the road from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) Returns a list of landmarks in the road of a specified type from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . type ( str ) - The type of landmarks to search . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ left _ lane ( self ) Generates a Waypoint at the center of the left lane based on the direction of the current Waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint get _ right _ lane ( self ) Generates a waypoint at the center of the right lane based on the direction of the current waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint Dunder methods __ str __ ( self ) carla . WeatherParameters This class defines objects containing lighting and weather specifications that can later be applied in carla . World . So far , these conditions only intervene with sensor . camera . rgb . They neither affect the actor ' s physics nor other sensors . Each of these parameters acts indepently from the rest . Increasing the rainfall will not automatically create puddles nor change the road ' s humidity . That makes for a better customization but means that realistic conditions need to be scripted . However an example of dynamic weather conditions working realistically can be found here . Instance Variables cloudiness ( float ) Values range from 0 to 100 , being 0 a clear sky and 100 one completely covered with clouds . precipitation ( float ) Rain intensity values range from 0 to 100 , being 0 none at all and 100 a heavy rain . precipitation _ deposits ( float ) Determines the creation of puddles . Values range from 0 to 100 , being 0 none at all and 100 a road completely capped with water . Puddles are created with static noise , meaning that they will always appear at the same locations . wind _ intensity ( float ) Controls the strenght of the wind with values from 0 , no wind at all , to 100 , a strong wind . The wind does affect rain direction and leaves from trees , so this value is restricted to avoid animation issues . sun _ azimuth _ angle ( float - degrees ) The azimuth angle of the sun . Values range from 0 to 360 . Zero is an origin point in a sphere determined by Unreal Engine . sun _ altitude _ angle ( float - degrees ) Altitude angle of the sun . Values range from - 90 to 90 corresponding to midnight and midday each . fog _ density ( float ) Fog concentration or thickness . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ distance ( float - meters ) Fog start distance . Values range from 0 to infinite . wetness ( float ) Wetness intensity . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ falloff ( float ) Density of the fog ( as in specific mass ) from 0 to infinity . The bigger the value , the more dense and heavy it will be , and the fog will reach smaller heights . Corresponds to Fog Height Falloff in the UE docs . If the value is 0 , the fog will be lighter than air , and will cover the whole scene . A value of 1 is approximately as dense as the air , and reaches normal - sized buildings . For values greater than 5 , the air will be so dense that it will be compressed on ground level . scattering _ intensity ( float ) Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . dust _ storm ( float ) Determines the strength of the dust storm weather . Values range from 0 to 100 . Methods __ 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 ) Method to initialize an object defining weather conditions . This class has some presets for different noon and sunset conditions listed in a note below . Parameters : cloudiness ( float ) - 0 is a clear sky , 100 complete overcast . precipitation ( float ) - 0 is no rain at all , 100 a heavy rain . precipitation _ deposits ( float ) - 0 means no puddles on the road , 100 means roads completely capped by rain . wind _ intensity ( float ) - 0 is calm , 100 a strong wind . sun _ azimuth _ angle ( float - degrees ) - 0 is an arbitrary North , 180 its corresponding South . sun _ altitude _ angle ( float - degrees ) - 90 is midday , - 90 is midnight . fog _ density ( float ) - Concentration or thickness of the fog , from 0 to 100 . fog _ distance ( float - meters ) - Distance where the fog starts in meters . wetness ( float ) - Humidity percentages of the road , from 0 to 100 . fog _ falloff ( float ) - Density ( specific mass ) of the fog , from 0 to infinity . scattering _ intensity ( float ) - Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) - Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) - Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . Note : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset . Dunder methods __ eq __ ( self , other ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self ) carla . WheelPhysicsControl Class that defines specific physical parameters for wheel objects that will be part of a carla . VehiclePhysicsControl to simulate vehicle it as a material object . Instance Variables tire _ friction ( float ) A scalar value that indicates the friction of the wheel . damping _ rate ( float ) Damping rate of the wheel . max _ steer _ angle ( float - degrees ) Maximum angle that the wheel can steer . radius ( float - centimeters ) Radius of the wheel . max _ brake _ torque ( float - N * m ) Maximum brake torque . max _ handbrake _ torque ( float - N * m ) Maximum handbrake torque . position ( carla . Vector3D ) World position of the wheel . This is a read - only parameter . long _ stiff _ value ( float - kg per radian ) Tire longitudinal stiffness per unit gravitational acceleration . Each vehicle has a custom value . lat _ stiff _ max _ load ( float ) Maximum normalized tire load at which the tire can deliver no more lateral stiffness no matter how much extra load is applied to the tire . Each vehicle has a custom value . lat _ stiff _ value ( float ) Maximum stiffness per unit of lateral slip . Each vehicle has a custom value . Methods __ 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 ) ) Parameters : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - degrees ) radius ( float - centimerers ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - meters ) Dunder methods __ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self ) carla . World World objects are created by the client to have a place for the simulation to happen . The world contains the map we can see , meaning the asset , not the navigation map . Navigation maps are part of the carla . Map class . It also manages the weather and actors present in it . There can only be one world per simulation , but it can be changed anytime . Instance Variables id ( int ) The ID of the episode associated with this world . Episodes are different sessions of a simulation . These change everytime a world is disabled or reloaded . Keeping track is useful to avoid possible issues . debug ( carla . DebugHelper ) Responsible for creating different shapes for debugging . Take a look at its class to learn more about it . Methods apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) This method applies settings contained in an object to the simulation running and returns the ID of the frame they were implemented . Parameters : world _ settings ( carla . WorldSettings ) Return : int Warning : If synchronous mode is enabled , and there is a Traffic Manager running , this must be set to sync mode too . Read this to learn how to do it . apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) Applies all texture fields in carla . MaterialParameter to the object object _ name . Empty textures here will not be applied . Parameters : 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 ) Applies all texture fields in carla . MaterialParameter to all objects in objects _ name _ list . Empty textures here will not be applied . Parameters : 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 ) Casts a ray from the specified initial _ location to final _ location . The function then detects all geometries intersecting the ray and returns a list of carla . LabelledPoint in order . Parameters : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . Return : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 Enable or disable a set of EnvironmentObject identified by their id . These objects will appear or disappear from the level . Parameters : env _ objects _ ids ( set ( int ) ) - Set of EnvironmentObject ids to change . enable ( bool ) - State to be applied to all the EnvironmentObject of the set . freeze _ all _ traffic _ lights ( self , frozen ) Freezes or unfreezes all traffic lights in the scene . Frozen traffic lights can be modified by the user but the time will not update them until unfrozen . Parameters : frozen ( bool ) ground _ projection ( self , location , search _ distance ) Projects the specified point downwards in the scene . The functions casts a ray from location in the direction ( 0 , 0 , - 1 ) ( downwards ) and returns a carla . LabelledPoint object with the first geometry this ray intersects ( usually the ground ) . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 Return : int project _ point ( self , location , direction , search _ distance ) Projects the specified point to the desired direction in the scene . The functions casts a ray from location in a direction and returns a carla . Labelled object with the first geometry this ray intersects . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . direction ( carla . Vector3D ) - The direction of projection . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) Stops the callback for callback _ id started with on _ tick ( ) . Parameters : callback _ id ( callback ) - The callback to be removed . The ID is returned when creating the callback . reset _ all _ traffic _ lights ( self ) Resets the cycle of all traffic lights in the map to the initial state . spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 The method will create , return and spawn an actor into the world . The actor will need an available blueprint to be created and a transform ( location and rotation ) . It can also be attached to a parent with a certain attachment type . Parameters : blueprint ( carla . ActorBlueprint ) - The reference from which the actor will be created . transform ( carla . Transform ) - Contains the location and orientation the actor will be spawned with . attach _ to ( carla . Actor ) - The parent object that the spawned actor will follow around . attachment ( carla . AttachmentType ) - Determines how fixed and rigorous should be the changes in position according to its parent object . Return : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u3002 It makes the client wait for a server tick . When the next frame is computed , the server will tick and return a snapshot describing the new state of the world . Parameters : seconds ( float - seconds ) - Maximum time the server should wait for a tick . It is set to 10.0 by default . Return : carla . WorldSnapshot Getters get _ actor ( self , actor _ id ) Looks up for an actor by ID and returns None if not found . Parameters : actor _ id ( int ) Return : carla . Actor get _ actors ( self , actor _ ids = None ) Retrieves a list of carla . Actor elements , either using a list of IDs provided or just listing everyone on stage . If an ID does not correspond with any actor , it will be excluded from the list returned , meaning that both the list of IDs and the list of actors may have different lengths . Parameters : actor _ ids ( list ) - The IDs of the actors being searched . By default it is set to None and returns every actor on scene . Return : carla . ActorList get _ blueprint _ library ( self ) Returns a list of actor blueprints available to ease the spawn of these into the world . Return : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) Returns a list of EnvironmentObject with the requested semantic tag . The method returns all the EnvironmentObjects in the level by default , but the query can be filtered by semantic tags with the argument object _ type . Parameters : object _ type ( carla . CityObjectLabel ) - Semantic tag of the EnvironmentObjects that are returned . Return : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) Returns an array of bounding boxes with location and rotation in world space . The method returns all the bounding boxes in the level by default , but the query can be filtered by semantic tags with the argument actor _ type . Parameters : actor _ type ( carla . CityObjectLabel ) - Semantic tag of the elements contained in the bounding boxes that are returned . Return : array ( carla . BoundingBox ) get _ lightmanager ( self ) Returns an instance of carla . LightManager that can be used to handle the lights in the scene . Return : carla . LightManager get _ map ( self ) Asks the server for the XODR containing the map file , and returns this parsed as a carla . Map . Return : carla . Map Warning : This method does call the simulation . It is expensive , and should only be called once . get _ names _ of _ all _ objects ( self ) Returns a list of the names of all objects in the scene that can be painted with the apply texture functions . Return : list ( str ) get _ random _ location _ from _ navigation ( self ) This can only be used with walkers . It retrieves a random location to be used as a destination using the go _ to _ location ( ) method in carla . WalkerAIController . This location will be part of a sidewalk . Roads , crosswalks and grass zones are excluded . The method does not take into consideration locations of existing actors so if a collision happens when trying to spawn an actor , it will return an error . Take a look at generate _ traffic . py for an example . Return : carla . Location get _ settings ( self ) Returns an object containing some data about the simulation such as synchrony between client and server or rendering mode . Return : carla . WorldSettings get _ snapshot ( self ) Returns a snapshot of the world at a certain moment comprising all the information about the actors . Return : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 Returns the spectator actor . The spectator is a special type of actor created by Unreal Engine , usually with ID = 0 , that acts as a camera and controls the view in the simulator window . Return : carla . Actor get _ traffic _ light ( self , landmark ) Provided a landmark , returns the traffic light object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic light . Return : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) Returns the traffic light actor corresponding to the indicated OpenDRIVE id . Parameters : traffic _ light _ id ( str ) - The OpenDRIVE id . Return : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) This function performs a search along the road in front of the specified waypoint and returns a list of traffic light actors found in the specified search distance . Parameters : waypoint ( carla . Waypoint ) - The input waypoint . distance ( float ) - Search distance . Return : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) Returns the list of traffic light actors affecting the junction indicated in junction _ id . Parameters : junction _ id ( int ) - The id of the junction . Return : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) Provided a landmark , returns the traffic sign object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic sign . Return : carla . TrafficSign get _ vehicles _ light _ states ( self ) Returns a dict where the keys are carla . Actor IDs and the values are carla . VehicleLightState of that vehicle . Return : dict get _ weather ( self ) Retrieves an object containing weather parameters currently active in the simulation , mainly cloudiness , precipitation , wind and sun position . Return : carla . WeatherParameters Setter : carla . World . set _ weather Setters set _ pedestrians _ cross _ factor ( self , percentage ) Parameters : percentage ( float ) - Sets the percentage of pedestrians that can walk on the road or cross at any point on the road . Value should be between 0.0 and 1.0 . For example , a value of 0.1 would allow 10% of pedestrians to walk on the road . Default is 0.0 . Note : Should be set before pedestrians are spawned . set _ pedestrians _ seed ( self , seed ) Parameters : seed ( int ) - Sets the seed to use for any random number generated in relation to pedestrians . Note : Should be set before pedestrians are spawned . If you want to repeat the same exact bodies ( blueprint ) for each pedestrian , then use the same seed in the Python code ( where the blueprint is choosen randomly ) and here , otherwise the pedestrians will repeat the same paths but the bodies will be different . set _ weather ( self , weather ) Changes the weather parameteres ruling the simulation to another ones defined in an object . Parameters : weather ( carla . WeatherParameters ) - New conditions to be applied . Getter : carla . World . get _ weather Dunder methods __ str __ ( self ) The content of the world is parsed and printed as a brief report of its current state . Return : string carla . WorldSettings The simulation has some advanced configuration options that are contained in this class and can be managed using carla . World and its methods . These allow the user to choose between client - server synchrony / asynchrony , activation of \" no rendering mode \" and either if the simulation should run with a fixed or variable time - step . Check this out if you want to learn about it . Instance Variables synchronous _ mode ( bool ) States the synchrony between client and server . When set to true , the server will wait for a client tick in order to move forward . It is false by default . no _ rendering _ mode ( bool ) When enabled , the simulation will run no rendering at all . This is mainly used to avoid overhead during heavy traffic simulations . It is false by default . fixed _ delta _ seconds ( float ) Ensures that the time elapsed between two steps of the simulation is fixed . Set this to 0.0 to work with a variable time - step , as happens by default . substepping ( bool ) Enable the physics substepping . This option allows computing some physics substeps between two render frames . If synchronous mode is set , the number of substeps and its time interval are fixed and computed are so they fulfilled the requirements of carla . WorldSettings . max _ substep and carla . WorldSettings . max _ substep _ delta _ time . These last two parameters need to be compatible with carla . WorldSettings . fixed _ delta _ seconds . Enabled by default . max _ substep _ delta _ time ( float ) Maximum delta time of the substeps . If the carla . WorldSettingsmax _ substep is high enough , the substep delta time would be always below or equal to this value . By default , the value is set to 0.01 . max _ substeps ( int ) The maximum number of physics substepping that are allowed . By default , the value is set to 10 . max _ culling _ distance ( float ) Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) Defines wether to use deterministic physics for pedestrian death animations or physical ragdoll simulation . When enabled , pedestrians have less realistic death animation but ensures determinism . When disabled , pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinsm can be ensured . tile _ stream _ distance ( float ) Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . Regions of the map within this range will be visible ( and capable of simulating physics ) . Regions outside this region will not be loaded . actor _ active _ distance ( float ) Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . Actors within this range will be active , and actors outside will become dormant . spectator _ as _ ego ( bool ) Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps . By default , the spectator will provoke loading of neighboring tiles in the absence of an ego actor . This might be inconvenient for applications that immediately spawn an ego actor . Methods __ 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 ) Creates an object containing desired settings that could later be applied through carla . World and its method apply _ settings ( ) . Parameters : synchronous _ mode ( bool ) - Set this to true to enable client - server synchrony . no _ rendering _ mode ( bool ) - Set this to true to completely disable rendering in the simulation . fixed _ delta _ seconds ( float - seconds ) - Set a fixed time - step in between frames . 0.0 means variable time - step and it is the default mode . max _ culling _ distance ( float - meters ) - Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) - Defines wether to use deterministic physics or ragdoll simulation for pedestrian deaths . tile _ stream _ distance ( float - meters ) - Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . actor _ active _ distance ( float - meters ) - Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . spectator _ as _ ego ( bool ) - Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps . Dunder methods __ eq __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self ) Parses the established settings to a string and shows them in command line . Return : str carla . WorldSnapshot This snapshot comprises all the information for every actor on scene at a certain moment of time . It creates and gives acces to a data structure containing a series of carla . ActorSnapshot . The client recieves a new snapshot on every tick that cannot be stored . Instance Variables id ( int ) A value unique for every snapshot to differentiate them . frame ( int ) Simulation frame in which the snapshot was taken . timestamp ( carla . Timestamp - seconds ) Precise moment in time when snapshot was taken . This class works in seconds as given by the operative system . Methods find ( self , actor _ id ) Given a certain actor ID , returns its corresponding snapshot or None if it is not found . Parameters : actor _ id ( int ) Return : carla . ActorSnapshot has _ actor ( self , actor _ id ) Given a certain actor ID , checks if there is a snapshot corresponding it and so , if the actor was present at that moment . Parameters : actor _ id ( int ) Return : bool Dunder methods __ eq __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are the same . Return : bool __ iter __ ( self ) Iterate over the carla . ActorSnapshot stored in the snapshot . __ len __ ( self ) Returns the amount of carla . ActorSnapshot present in this snapshot . Return : int __ ne __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are different . Return : bool command . ApplyAngularImpulse Command adaptation of add _ angular _ impulse ( ) in carla . Actor . Applies an angular impulse to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) Angular impulse applied to the actor . Methods __ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - degrees * s ) command . ApplyForce Command adaptation of add _ force ( ) in carla . Actor . Applies a force to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . force ( carla . Vector3D - N ) Force applied to the actor over time . Methods __ init __ ( self , actor , force ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . force ( carla . Vector3D - N ) command . ApplyImpulse Command adaptation of add _ impulse ( ) in carla . Actor . Applies an impulse to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - N * s ) Impulse applied to the actor . Methods __ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - N * s ) command . ApplyTargetAngularVelocity Command adaptation of set _ target _ angular _ velocity ( ) in carla . Actor . Sets the actor ' s angular velocity vector . Instance Variables actor _ id ( int ) Actor affected by the command . angular _ velocity ( carla . Vector3D - deg / s ) The 3D angular velocity that will be applied to the actor . Methods __ init __ ( self , actor , angular _ velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . angular _ velocity ( carla . Vector3D - deg / s ) - Angular velocity vector applied to the actor . command . ApplyTargetVelocity Command adaptation of set _ target _ velocity ( ) in carla . Actor . Instance Variables actor _ id ( int ) Actor affected by the command . velocity ( carla . Vector3D - m / s ) The 3D velocity applied to the actor . Methods __ init __ ( self , actor , velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . velocity ( carla . Vector3D - m / s ) - Velocity vector applied to the actor . command . ApplyTorque Command adaptation of add _ torque ( ) in carla . Actor . Applies a torque to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . torque ( carla . Vector3D - degrees ) Torque applied to the actor over time . Methods __ init __ ( self , actor , torque ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . torque ( carla . Vector3D - degrees ) command . ApplyTransform Command adaptation of set _ transform ( ) in carla . Actor . Sets a new transform to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . transform ( carla . Transform ) Transformation to be applied . Methods __ init __ ( self , actor , transform ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform ) command . ApplyVehicleAckermannControl Command adaptation of apply _ ackermann _ control ( ) in carla . Vehicle . Applies a certain akermann control to a vehicle . Instance Variables actor _ id ( int ) Vehicle actor affected by the command . control ( carla . AckermannVehicleControl ) Vehicle ackermann control to be applied . Methods __ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . AckermannVehicleControl ) command . ApplyVehicleControl Command adaptation of apply _ control ( ) in carla . Vehicle . Applies a certain control to a vehicle . Instance Variables actor _ id ( int ) Vehicle actor affected by the command . control ( carla . VehicleControl ) Vehicle control to be applied . Methods __ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . VehicleControl ) command . ApplyVehiclePhysicsControl Command adaptation of apply _ physics _ control ( ) in carla . Vehicle . Applies a new physics control to a vehicle , modifying its physical parameters . Instance Variables actor _ id ( int ) Vehicle actor affected by the command . physics _ control ( carla . VehiclePhysicsControl ) Physics control to be applied . Methods __ init __ ( self , actor , physics _ control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . physics _ control ( carla . VehiclePhysicsControl ) command . ApplyWalkerControl Command adaptation of apply _ control ( ) in carla . Walker . Applies a control to a walker . Instance Variables actor _ id ( int ) Walker actor affected by the command . control ( carla . WalkerControl ) Walker control to be applied . Methods __ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . WalkerControl ) command . ApplyWalkerState Apply a state to the walker actor . Specially useful to initialize an actor them with a specific location , orientation and speed . Instance Variables actor _ id ( int ) Walker actor affected by the command . transform ( carla . Transform ) Transform to be applied . speed ( float - m / s ) Speed to be applied . Methods __ init __ ( self , actor , transform , speed ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform ) speed ( float - m / s ) command . DestroyActor Command adaptation of destroy ( ) in carla . Actor that tells the simulator to destroy this actor . It has no effect if the actor was already destroyed . When executed with apply _ batch _ sync ( ) in carla . Client there will be a command . Response that will return a boolean stating whether the actor was successfully destroyed . Instance Variables actor _ id ( int ) Actor affected by the command . Methods __ init __ ( self , actor ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . command . Response States the result of executing a command as either the ID of the actor to whom the command was applied to ( when succeeded ) or an error string ( when failed ) . actor ID , depending on whether or not the command succeeded . The method apply _ batch _ sync ( ) in carla . Client returns a list of these to summarize the execution of a batch . Instance Variables actor _ id ( int ) Actor to whom the command was applied to . States that the command was successful . error ( str ) A string stating the command has failed . Methods has _ error ( self ) Returns True if the command execution fails , and False if it was successful . Return : bool command . SetAutopilot Command adaptation of set _ autopilot ( ) in carla . Vehicle . Turns on / off the vehicle ' s autopilot mode . Instance Variables actor _ id ( int ) Actor that is affected by the command . enabled ( bool ) If autopilot should be activated or not . port ( uint16 ) Port of the Traffic Manager where the vehicle is to be registered or unlisted . Methods __ init __ ( self , actor , enabled , port = 8000 ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool ) port ( uint16 ) - The Traffic Manager port where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 . command . SetEnableGravity Command adaptation of set _ enable _ gravity ( ) in carla . Actor . Enables or disables gravity on an actor . Instance Variables actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool ) Methods __ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool ) command . SetSimulatePhysics Command adaptation of set _ simulate _ physics ( ) in carla . Actor . Determines whether an actor will be affected by physics or not . Instance Variables actor _ id ( int ) Actor affected by the command . enabled ( bool ) If physics should be activated or not . Methods __ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool ) command . SetVehicleLightState Command adaptation of set _ light _ state ( ) in carla . Vehicle . Sets the light state of a vehicle . Instance Variables actor _ id ( int ) Actor that is affected by the command . light _ state ( carla . VehicleLightState ) Defines the light state of a vehicle . Methods __ init __ ( self , actor , light _ state ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . light _ state ( carla . VehicleLightState ) - Recaps the state of the lights of a vehicle , these can be used as a flags . command . ShowDebugTelemetry Command adaptation of show _ debug _ telemetry ( ) in carla . Actor . Displays vehicle control telemetry data . Instance Variables actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool ) Methods __ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool ) command . SpawnActor Command adaptation of spawn _ actor ( ) in carla . World . Spawns an actor into the world based on the blueprint provided and the transform . If a parent is provided , the actor is attached to it . Instance Variables transform ( carla . Transform ) Transform to be applied . parent _ id ( int ) Identificator of the parent actor . Methods __ init __ ( self ) __ init __ ( self , blueprint , transform ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) Links another command to be executed right after . It allows to ease very common flows such as spawning a set of vehicles by command and then using this method to set them to autopilot automatically . Parameters : command ( any carla Command ) - a Carla command . 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 ; } Snippet for carla . World . enable _ environment _ objects # This recipe turn visibility off and on for two specifc buildings on the map # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # Access individual building IDs and save in a set building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # Toggle buildings off world . enable _ environment _ objects ( objects _ to _ toggle , False ) # Toggle buildings on world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ string # This recipe is a modification of lane _ explorer . py example . # It draws the path of an actor through the world , printing information at each waypoint . # ... 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 ) # Check if the vehicle is moving 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 ) # Update the current waypoint and sleep for some time current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # This recipe toggles off several layers in our \" _ Opt \" maps # Load town one with minimum layout ( roads , sidewalks , traffic lights and traffic signs ) # as well as buildings and parked vehicles world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # Toggle all buildings off world . unload _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all parked vehicles off world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # Sets the appearance of the vehicles front wheels to 40 \u00b0 . Vehicle physics will not be affected . 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 __ # This recipe shows in every script provided in PythonAPI / Examples # and it is used to parse the client creation arguments when running the script . 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 Snippet for carla . Map . get _ waypoint # This recipe shows the current traffic rules affecting the vehicle . # Shows the current lane type and if a lane change can be done in the actual lane or the surrounding ones . # ... 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 # This recipe attaches different camera / sensors to a vehicle with different attachments . # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # Default attachment : 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 Snippet for carla . WalkerAIController . stop # To destroy the pedestrians , stop them from the navigation , and then destroy the objects ( actor and controller ) . # stop pedestrians ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ id ) , 2 ) : all _ actors [ i ] . stop ( ) # destroy pedestrian ( actor and controller ) client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in all _ id ] ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ box # This recipe shows how to draw traffic light actor bounding boxes from a world snapshot . # .... debug = world . debug world _ snapshot = world . get _ snapshot ( ) for actor _ snapshot in world _ snapshot : actual _ actor = world . get _ actor ( actor _ snapshot . id ) if actual _ actor . type _ id = = ' traffic . traffic _ light ' : debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) # ... Copy snippet Close snippet Snippet for carla . World . get _ spectator # This recipe spawns an actor and the spectator camera at the actor ' s location . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ... Copy snippet Close snippet Snippet for carla . Sensor . listen # This recipe applies a color conversion to the image taken by a camera sensor , # so it is converted to a semantic segmentation image . # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . semantic _ segmentation ' ) # ... cc = carla . ColorConverter . CityScapesPalette camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame , cc ) ) # ... Copy snippet Close snippet Snippet for carla . TrafficLight . set _ state # This recipe changes from red to green the traffic light that affects the vehicle . # This is done by detecting if the vehicle actor is at a traffic light . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ...# ... if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : # world . hud . notification ( \" Traffic light changed ! Good to go ! \" ) traffic _ light . set _ state ( carla . TrafficLightState . Green ) # ... Copy snippet Close snippet Snippet for carla . ActorBlueprint . set _ attribute # This recipe changes attributes of different type of blueprint actors . # ... walker _ bp = world . get _ blueprint _ library ( ) . filter ( ' walker . pedestrian.0002 ' ) walker _ bp . set _ attribute ( ' is _ invincible ' , True ) # ... # Changes attribute randomly by the recommended value vehicle _ bp = wolrd . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) color = random . choice ( vehicle _ bp . get _ attribute ( ' color ' ) . recommended _ values ) vehicle _ bp . set _ attribute ( ' color ' , color ) # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , 600 ) camera _ bp . set _ attribute ( ' image _ size _ y ' , 600 ) # ... Copy snippet Close snippet Snippet for carla . Client . apply _ batch _ sync # 0 . Choose a blueprint fo the walkers world = client . get _ world ( ) blueprintsWalkers = world . get _ blueprint _ library ( ) . filter ( \" walker . pedestrian . * \" ) walker _ bp = random . choice ( blueprintsWalkers ) # 1 . Take all the random locations to spawn spawn _ points = [ ] for i in range ( 50 ) : spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) if ( spawn _ point . location ! = None ) : spawn _ points . append ( spawn _ point ) # 2 . Build the batch of commands to spawn the pedestrians batch = [ ] for spawn _ point in spawn _ points : walker _ bp = random . choice ( blueprintsWalkers ) batch . append ( carla . command . SpawnActor ( walker _ bp , spawn _ point ) ) # 2.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list . append ( { \" id \" : results [ i ] . actor _ id } ) # 3 . Spawn walker AI controllers for each walker batch = [ ] walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) for i in range ( len ( walkers _ list ) ) : batch . append ( carla . command . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , walkers _ list [ i ] [ \" id \" ] ) ) # 3.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list [ i ] [ \" con \" ] = results [ i ] . actor _ id # 4 . Put altogether the walker and controller ids for i in range ( len ( walkers _ list ) ) : all _ id . append ( walkers _ list [ i ] [ \" con \" ] ) all _ id . append ( walkers _ list [ i ] [ \" id \" ] ) all _ actors = world . get _ actors ( all _ id ) # wait for a tick to ensure client receives the last transform of the walkers we have just created world . wait _ for _ tick ( ) # 5 . initialize each controller and set target to walk to ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ actors ) , 2 ) : # start walker all _ actors [ i ] . start ( ) # set walk to random point all _ actors [ i ] . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # random max speed all _ actors [ i ] . set _ max _ speed ( 1 + random . random ( ) ) # max speed between 1 and 2 ( default is 1.4 m / s ) Copy snippet Close snippet Snippet for carla . World . load _ map _ layer # This recipe toggles on several layers in our \" _ Opt \" maps # Load town one with only minimum layout ( roads , sidewalks , traffic lights and traffic signs ) world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . None ) # Toggle all buildings on world . load _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all foliage on world . load _ map _ layer ( carla . MapLayer . Foliage ) # Toggle all parked vehicles on world . load _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet function ButtonAction ( container _ name ) { if ( window _ big ) { snipet _ name = container _ name . replace ( ' - snipet _ button ' , ' - snipet ' ) ; document . getElementById ( \" snipets - container \" ) . innerHTML = document . getElementById ( snipet _ name ) . innerHTML ; } else { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; code _ name = container _ name . replace ( ' - snipet _ button ' , ' - code ' ) ; var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( code _ name ) ) ; alert ( range ) ; } } function WindowResize ( ) { if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } } var window _ big ; if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } buttons = document . getElementsByClassName ( ' SnipetButton ' ) for ( let i = 0 ; i < buttons . length ; i ++ ) { buttons [ i ] . addEventListener ( \" click \" , function ( ) { ButtonAction ( buttons [ i ] . id ) ; } , true ) ; } window . onresize = WindowResize ;","title":"Python API \u53c2\u8003"},{"location":"python_api/#python-api","text":"\u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002","title":"Python API \u53c2\u8003"},{"location":"python_api/#carlaackermanncontrollersettings","text":"\u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002","title":"carla . AckermannControllerSettings"},{"location":"python_api/#_1","text":"speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_2","text":"__ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder-methods","text":"__ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self )","title":"Dunder methods"},{"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/#_3","text":"attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_4","text":"add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - degrees ) - \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/#_5","text":"get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - meters \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_6","text":"set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - meters ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#dunder-methods_1","text":"__ str __ ( self )","title":"Dunder methods"},{"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/#_7","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/#_8","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/#dunder-methods_2","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 Return : bool __ str __ ( self )","title":"Dunder methods"},{"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/#_9","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/#_10","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/#_11","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/#_12","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/#_13","text":"set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#dunder","text":"__ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaactorlist","text":"\u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002","title":"carla . ActorList"},{"location":"python_api/#_14","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/#_15","text":"id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_16","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_17","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/#_18","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/#_19","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/#_20","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 Return : 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/#_21","text":"extent ( carla . Vector3D - meters ) \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 - meters ) \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/#_22","text":"__ init __ ( self , location , extent ) \u53c2\u6570 \uff1a location ( carla . Location ) - \u76f8\u5bf9 \u4e8e \u5176\u7236 \u6846 \u7684 \u4e2d\u5fc3 \u3002 extent ( carla . Vector3D - meters ) - \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 - meters ) - \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/#_23","text":"get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#dunder_3","text":"__ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlacityobjectlabel","text":"\u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"carla . CityObjectLabel"},{"location":"python_api/#_24","text":"None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaclient","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002","title":"carla . Client"},{"location":"python_api/#_25","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\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_26","text":"get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_27","text":"set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlacollisionevent","text":"Inherited from carla . SensorData \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/#_28","text":"actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlacolor","text":"\u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . Color"},{"location":"python_api/#_29","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/#_30","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/#_31","text":"CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carladvsevent","text":"\u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . DVSEvent"},{"location":"python_api/#_32","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/#_33","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/#_34","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/#_35","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/#_36","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carladebughelper","text":"carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002","title":"carla . DebugHelper"},{"location":"python_api/#_37","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 - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - meters ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - meters ) - \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 Draws a box , ussually to act for object colliders . Parameters : 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 - meters ) - \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 - 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 _ 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 - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - meters ) - \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 - 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 _ 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 - meters ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - meters ) - \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 - meters ) - \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/#_38","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/#_39","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/#_40","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/#_41","text":"__ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_7","text":"__ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlagbuffertextureid","text":"\u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002","title":"carla . GBufferTextureID"},{"location":"python_api/#_42","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/#_43","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/#_44","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/#_45","text":"latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - meters ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_46","text":"__ init __ ( self , latitude = 0.0 , longitude = 0.0 , altitude = 0.0 ) \u53c2\u6570 \uff1a latitude ( float - degrees ) longitude ( float - degrees ) altitude ( float - meters )","title":"\u65b9\u6cd5"},{"location":"python_api/#_47","text":"__ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlagnssmeasurement","text":"Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002","title":"carla . GnssMeasurement"},{"location":"python_api/#_48","text":"altitude ( float - meters ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_49","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_50","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimumeasurement","text":"Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7684 \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 \u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002","title":"carla . IMUMeasurement"},{"location":"python_api/#_51","text":"accelerometer ( carla . Vector3D - m / s 2 ) \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 compass ( float - radians ) \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 - rad / s ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_52","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_53","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimage","text":"Inherited from carla . SensorData \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/#_54","text":"fov ( float - degrees ) \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/#_55","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/#_56","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/#_57","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/#_58","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_59","text":"get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - Type of lanes to get the waypoints . \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/#_60","text":"location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalandmark","text":"\u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002","title":"carla . Landmark"},{"location":"python_api/#_61","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 - meters ) \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 - meters ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - meters ) \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 - degrees ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - meters ) \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 - meters ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - meters ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - meters ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - meters ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_62","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_63","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/#_64","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/#_65","text":"Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanechange","text":"\u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002","title":"carla . LaneChange"},{"location":"python_api/#_66","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":"Inherited from carla . SensorData \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . LaneInvasionEvent"},{"location":"python_api/#_67","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/#_68","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_69","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/#_70","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/#_71","text":"Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanemarkingtype","text":"\u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002","title":"carla . LaneMarkingType"},{"location":"python_api/#_72","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/#_73","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/#_74","text":"point ( carla . Location - meters ) 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/#_75","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_76","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalidarmeasurement","text":"\u7ee7\u627f \u81ea carla . SensorData \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/#_77","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/#_78","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/#_79","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/#_80","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . LidarDetection retrieved as data . __ 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/#_81","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 - meters ) \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/#_82","text":"turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_83","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/#_84","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/#_85","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/#_86","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/#_87","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/#_88","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/#_89","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":"Inherited from carla . Vector3D \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002","title":"carla . Location"},{"location":"python_api/#_90","text":"x ( float - meters ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - meters ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - meters ) Z \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_91","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 - meters","title":"\u65b9\u6cd5"},{"location":"python_api/#_92","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 Return : carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlamap","text":"\u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002","title":"carla . Map"},{"location":"python_api/#_93","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/#_94","text":"__ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - meters ) - \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/#_95","text":"get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_96","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/#_97","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/#_98","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":"\u7ee7\u627f \u81ea carla . SensorData \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/#_99","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/#_100","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_101","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/#_102","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":"Inherited from carla . SensorData \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/#_103","text":"fov ( float - degrees ) \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/#_104","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_105","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/#_106","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/#_107","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/#_108","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/#_109","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/#_110","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/#_111","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 - meters ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - meters ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - meters ) \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 - meters ) \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/#_112","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_113","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/#instance-variables","text":"altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - meters ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor .","title":"Instance Variables"},{"location":"python_api/#methods","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_3","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlaradarmeasurement","text":"Inherited from carla . SensorData Class that defines and gathers the measures registered by a sensor . other . radar , representing a wall of points in front of the sensor with a distance , angle and velocity in relation to it . The data consists of a carla . RadarDetection array . Learn more about this here .","title":"carla . RadarMeasurement"},{"location":"python_api/#instance-variables_1","text":"raw _ data ( bytes ) The complete information of the carla . RadarDetection the radar has registered .","title":"Instance Variables"},{"location":"python_api/#methods_1","text":"","title":"Methods"},{"location":"python_api/#getters","text":"get _ detection _ count ( self ) Retrieves the number of entries generated , same as __ str __ ( ) .","title":"Getters"},{"location":"python_api/#dunder-methods_4","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . RadarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarotation","text":"Class that represents a 3D rotation and therefore , an orientation in space . CARLA uses the Unreal Engine coordinates system . This is a Z - up left - handed system . The constructor method follows a specific order of declaration : ( pitch , yaw , roll ) , which corresponds to ( Y - rotation , Z - rotation , X - rotation ) . Unreal Engine ' s coordinates system .","title":"carla . Rotation"},{"location":"python_api/#instance-variables_2","text":"pitch ( float - degrees ) Y - axis rotation angle . yaw ( float - degrees ) Z - axis rotation angle . roll ( float - degrees ) X - axis rotation angle .","title":"Instance Variables"},{"location":"python_api/#methods_2","text":"__ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) Parameters : pitch ( float - degrees ) - Y - axis rotation angle . yaw ( float - degrees ) - Z - axis rotation angle . roll ( float - degrees ) - X - axis rotation angle . Warning : The declaration order is different in CARLA ( pitch , yaw , roll ) , and in the Unreal Engine Editor ( roll , pitch , yaw ) . When working in a build from source , don ' t mix up the axes ' rotations .","title":"Methods"},{"location":"python_api/#getters_1","text":"get _ forward _ vector ( self ) Computes the vector pointing forward according to the rotation of the object . Return : carla . Vector3D get _ right _ vector ( self ) Computes the vector pointing to the right according to the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes the vector pointing upwards according to the rotation of the object . Return : carla . Vector3D","title":"Getters"},{"location":"python_api/#dunder-methods_5","text":"__ eq __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ ne __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ str __ ( self ) Parses the axis ' orientations to string .","title":"Dunder methods"},{"location":"python_api/#carlarssactorconstellationdata","text":"Data structure that is provided within the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) .","title":"carla . RssActorConstellationData"},{"location":"python_api/#instance-variables_3","text":"ego _ match _ object ( ad . map . match . Object ) The ego map matched information . ego _ route ( ad . map . route . FullRoute ) The ego route . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . other _ match _ object ( ad . map . match . Object ) The other object ' s map matched information . This is only valid if ' other _ actor ' is not ' None ' . other _ actor ( carla . Actor ) The other actor . This is ' None ' in case of query of default parameters or articial objects of kind ad . rss . world . ObjectType . ArtificialObject with no dedicated ' carla . Actor ' ( as e . g . for the road boundaries at the moment ) .","title":"Instance Variables"},{"location":"python_api/#methods_3","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_6","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssactorconstellationresult","text":"Data structure that should be returned by the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) .","title":"carla . RssActorConstellationResult"},{"location":"python_api/#instance-variables_4","text":"rss _ calculation _ mode ( ad . rss . map . RssMode ) The calculation mode to be applied with the actor . restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) The mode for restricting speed limit . ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the ego vehicle . actor _ object _ type ( ad . rss . world . ObjectType ) The RSS object type to be used for the actor . actor _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the actor .","title":"Instance Variables"},{"location":"python_api/#methods_4","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_7","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssegodynamicsonroute","text":"Part of the data contained inside a carla . RssResponse describing the state of the vehicle . The parameters include its current dynamics , and how it is heading regarding the target route .","title":"carla . RssEgoDynamicsOnRoute"},{"location":"python_api/#instance-variables_5","text":"ego _ speed ( ad . physics . Speed ) The ego vehicle ' s speed . min _ stopping _ distance ( ad . physics . Distance ) The current minimum stopping distance . ego _ center ( ad . map . point . ENUPoint ) The considered enu position of the ego vehicle . ego _ heading ( ad . map . point . ENUHeading ) The considered heading of the ego vehicle . ego _ center _ within _ route ( bool ) States if the ego vehicle ' s center is within the route . crossing _ border ( bool ) States if the vehicle is already crossing one of the lane borders . route _ heading ( ad . map . point . ENUHeading ) The considered heading of the route . route _ nominal _ center ( ad . map . point . ENUPoint ) The considered nominal center of the current route . heading _ diff ( ad . map . point . ENUHeading ) The considered heading diff towards the route . route _ speed _ lat ( ad . physics . Speed ) The ego vehicle ' s speed component lat regarding the route . route _ speed _ lon ( ad . physics . Speed ) The ego vehicle ' s speed component lon regarding the route . route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route . route _ accel _ lon ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lon regarding the route . avg _ route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) The ego acceleration component lon regarding the route smoothened by an average filter .","title":"Instance Variables"},{"location":"python_api/#methods_5","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_8","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssloglevel","text":"Enum declaration used in carla . RssSensor to set the log level .","title":"carla . RssLogLevel"},{"location":"python_api/#instance-variables_6","text":"trace debug info warn err critical off","title":"Instance Variables"},{"location":"python_api/#carlarssresponse","text":"Inherited from carla . SensorData Class that contains the output of a carla . RssSensor . This is the result of the RSS calculations performed for the parent vehicle of the sensor . A carla . RssRestrictor will use the data to modify the carla . VehicleControl of the vehicle .","title":"carla . RssResponse"},{"location":"python_api/#instance-variables_7","text":"response _ valid ( bool ) States if the response is valid . It is False if calculations failed or an exception occured . proper _ response ( ad . rss . state . ProperResponse ) The proper response that the RSS calculated for the vehicle . rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) Detailed RSS states at the current moment in time . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . world _ model ( ad . rss . world . WorldModel ) World model used for calculations . situation _ snapshot ( ad . rss . situation . SituationSnapshot ) Detailed RSS situations extracted from the world model .","title":"Instance Variables"},{"location":"python_api/#methods_6","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_9","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssrestrictor","text":"These objects apply restrictions to a carla . VehicleControl . It is part of the Carla implementation of the C++ Library for Responsibility Sensitive Safety . This class works hand in hand with a rss sensor , which provides the data of the restrictions to be applied .","title":"carla . RssRestrictor"},{"location":"python_api/#methods_7","text":"restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) Applies the safety restrictions given by a carla . RssSensor to a carla . VehicleControl . Parameters : vehicle _ control ( carla . VehicleControl ) - The input vehicle control to be restricted . proper _ response ( ad . rss . state . ProperResponse ) - Part of the response generated by the sensor . Contains restrictions to be applied to the acceleration of the vehicle . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - Part of the response generated by the sensor . Contains dynamics and heading of the vehicle regarding its route . vehicle _ physics ( carla . VehiclePhysicsControl ) - The current physics of the vehicle . Used to apply the restrictions properly . Return : carla . VehicleControl","title":"Methods"},{"location":"python_api/#setters","text":"set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level .","title":"Setters"},{"location":"python_api/#carlarssroadboundariesmode","text":"Enum declaration used in carla . RssSensor to enable or disable the stay on road feature . In summary , this feature considers the road boundaries as virtual objects . The minimum safety distance check is applied to these virtual walls , in order to make sure the vehicle does not drive off the road .","title":"carla . RssRoadBoundariesMode"},{"location":"python_api/#instance-variables_8","text":"On Enables the stay on road feature . Off Disables the stay on road feature .","title":"Instance Variables"},{"location":"python_api/#carlarsssensor","text":"Inherited from carla . Sensor This sensor works a bit differently than the rest . Take look at the specific documentation , and the rss sensor reference to gain full understanding of it . The RSS sensor uses world information , and a RSS library to make safety checks on a vehicle . The output retrieved by the sensor is a carla . RssResponse . This will be used by a carla . RssRestrictor to modify a carla . VehicleControl before applying it to a vehicle .","title":"carla . RssSensor"},{"location":"python_api/#instance-variables_9","text":"ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the ego vehicle if no actor constellation callback is registered . other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the rest of vehicles if no actor constellation callback is registered . pedestrian _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for pedestrians if no actor constellation callback is registered . road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) Switches the stay on road feature . By default is Off . routing _ targets ( vector < carla . Transform > ) The current list of targets considered to route the vehicle . If no routing targets are defined , a route is generated at random .","title":"Instance Variables"},{"location":"python_api/#methods_8","text":"append _ routing _ target ( self , routing _ target ) Appends a new target position to the current route of the vehicle . Parameters : routing _ target ( carla . Transform ) - New target point for the route . Choose these after the intersections to force the route to take the desired turn . drop _ route ( self ) Discards the current route . If there are targets remaining in routing _ targets , creates a new route using those . Otherwise , a new route is created at random . register _ actor _ constellation _ callback ( self , callback ) Register a callback to customize a carla . RssActorConstellationResult . By this callback the settings of RSS parameters are done per actor constellation and the settings ( ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics ) have no effect . Parameters : callback - The function to be called whenever a RSS situation is about to be calculated . reset _ routing _ targets ( self ) Erases the targets that have been appended to the route .","title":"Methods"},{"location":"python_api/#setters_1","text":"set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level . set _ map _ log _ level ( self , log _ level ) Sets the map log level . Parameters : log _ level ( carla . RssLogLevel ) - New map log level .","title":"Setters"},{"location":"python_api/#dunder-methods_10","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasemanticlidardetection","text":"Data contained inside a carla . SemanticLidarMeasurement . Each of these represents one of the points in the cloud with its location , the cosine of the incident angle , index of the object hit , and its semantic tag .","title":"carla . SemanticLidarDetection"},{"location":"python_api/#instance-variables_10","text":"point ( carla . Location - meters ) [ x , y , z ] coordinates of the point . cos _ inc _ angle ( float ) Cosine of the incident angle between the ray , and the normal of the hit object . object _ idx ( uint ) ID of the actor hit by the ray . object _ tag ( uint ) \u8bed\u4e49 \u6807\u7b7e of the component hit by the ray .","title":"Instance Variables"},{"location":"python_api/#methods_9","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_11","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasemanticlidarmeasurement","text":"Inherited from carla . SensorData Class that defines the semantic LIDAR data retrieved by a sensor . lidar . ray _ cast _ semantic . This essentially simulates a rotating LIDAR using ray - casting . Learn more about this here .","title":"carla . SemanticLidarMeasurement"},{"location":"python_api/#instance-variables_11","text":"channels ( int ) Number of lasers shot . horizontal _ angle ( float - radians ) Horizontal angle the LIDAR is rotated at the time of the measurement . raw _ data ( bytes ) Received list of raw detection points . Each point consists of [ x , y , z ] coordinates plus the cosine of the incident angle , the index of the hit actor , and its semantic tag .","title":"Instance Variables"},{"location":"python_api/#methods_10","text":"save _ to _ disk ( self , path ) Saves the point cloud to disk as a . ply file describing data from 3D scanners . The files generated are ready to be used within MeshLab , an open - source system for processing said files . Just take into account that axis may differ from Unreal Engine and so , need to be reallocated . Parameters : path ( str )","title":"Methods"},{"location":"python_api/#getters_2","text":"get _ point _ count ( self , channel ) Retrieves the number of points sorted by channel that are generated by this measure . Sorting by channel allows to identify the original channel for every point . Parameters : channel ( int )","title":"Getters"},{"location":"python_api/#dunder-methods_12","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasensor","text":"Inherited from carla . Actor Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - Depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector .","title":"carla . Sensor"},{"location":"python_api/#instance-variables_12","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"Instance Variables"},{"location":"python_api/#methods_11","text":"is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture .","title":"Methods"},{"location":"python_api/#dunder-methods_13","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasensordata","text":"Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement .","title":"carla . SensorData"},{"location":"python_api/#instance-variables_13","text":"frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated .","title":"Instance Variables"},{"location":"python_api/#carlatexturecolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel .","title":"carla . TextureColor"},{"location":"python_api/#instance-variables_14","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"Instance Variables"},{"location":"python_api/#methods_12","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color )","title":"Methods"},{"location":"python_api/#setters_2","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"Setters"},{"location":"python_api/#carlatexturefloatcolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel .","title":"carla . TextureFloatColor"},{"location":"python_api/#instance-variables_15","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"Instance Variables"},{"location":"python_api/#methods_13","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor )","title":"Methods"},{"location":"python_api/#setters_3","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"Setters"},{"location":"python_api/#carlatimestamp","text":"Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data .","title":"carla . Timestamp"},{"location":"python_api/#instance-variables_16","text":"frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds .","title":"Instance Variables"},{"location":"python_api/#methods_14","text":"__ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds )","title":"Methods"},{"location":"python_api/#dunder-methods_14","text":"__ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlatrafficlight","text":"Inherited from carla . TrafficSign A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually .","title":"carla . TrafficLight"},{"location":"python_api/#instance-variables_17","text":"state ( carla . TrafficLightState ) Current state of the traffic light .","title":"Instance Variables"},{"location":"python_api/#methods_15","text":"freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . Return : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator .","title":"Methods"},{"location":"python_api/#getters_3","text":"get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . Return : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . Return : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . Return : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . Return : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . Return : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . Return : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . Return : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . Return : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ yellow _ time","title":"Getters"},{"location":"python_api/#setters_4","text":"set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . Getter : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) Getter : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) Getter : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) Getter : carla . TrafficLight . get _ yellow _ time","title":"Setters"},{"location":"python_api/#dunder-methods_15","text":"__ str __ ( self )","title":"Dunder methods"},{"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/#instance-variables_18","text":"Red Yellow Green Off Unknown","title":"Instance Variables"},{"location":"python_api/#carlatrafficmanager","text":"The traffic manager is a module built on top of the CARLA API in C++ . It handles any group of vehicles set to autopilot mode to populate the simulation with realistic urban traffic conditions and give the chance to user to customize some behaviours . The architecture of the traffic manager is divided in five different goal - oriented stages and a PID controller where the information flows until eventually , a carla . VehicleControl is applied to every vehicle registered in a traffic manager . In order to learn more , visit the documentation regarding this module .","title":"carla . TrafficManager"},{"location":"python_api/#methods_16","text":"auto _ lane _ change ( self , actor , enable ) Turns on or off lane changing behaviour for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle whose settings are changed . enable ( bool ) - True is default and enables lane changes . False will disable them . collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) Tunes on / off collisions between a vehicle and another specific actor . In order to ignore all other vehicles , traffic lights or walkers , use the specific ignore methods described in this same section . Parameters : reference _ actor ( carla . Actor ) - Vehicle that is going to ignore collisions . other _ actor ( carla . Actor ) - The actor that reference _ actor is going to ignore collisions with . detect _ collision ( bool ) - True is default and enables collisions . False will disable them . distance _ to _ leading _ vehicle ( self , actor , distance ) Sets the minimum distance in meters that a vehicle has to keep with the others . The distance is in meters and will affect the minimum moving distance . It is computed from front to back of the vehicle objects . Parameters : actor ( carla . Actor ) - Vehicle whose minimum distance is being changed . distance ( float - meters ) - Meters between both vehicles . force _ lane _ change ( self , actor , direction ) Forces a vehicle to change either to the lane on its left or right , if existing , as indicated in direction . This method applies the lane change no matter what , disregarding possible collisions . Parameters : actor ( carla . Actor ) - Vehicle being forced to change lanes . direction ( bool ) - Destination lane . True is the one on the right and False is the left one . global _ lane _ offset ( self , offset ) Sets a global lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : offset ( float ) - Lane offset displacement from the center line . global _ percentage _ speed _ difference ( self , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : percentage ( float ) - Percentage difference between intended speed and the current limit . ignore _ lights _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that traffic lights will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore traffic lights . perc ( float ) - Between 0 and 100 . Amount of times traffic lights will be ignored . ignore _ signs _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that stop signs will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore stop signs . perc ( float ) - Between 0 and 100 . Amount of times stop signs will be ignored . ignore _ vehicles _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with another vehicle will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore other vehicles . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . ignore _ walkers _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with walkers will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore walkers on scene . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . keep _ right _ rule _ percentage ( self , actor , perc ) During the localization stage , this method sets a percent chance that vehicle will follow the keep right rule , and stay in the right lane . Parameters : actor ( carla . Actor ) - Vehicle whose behaviour is being changed . perc ( float ) - Between 0 and 100 . Amount of times the vehicle will follow the keep right rule . random _ left _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a left lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . random _ right _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a right lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . shut _ down ( self ) Shuts down the traffic manager . update _ vehicle _ lights ( self , actor , do _ update ) Sets if the Traffic Manager is responsible of updating the vehicle lights , or not . Default is False . The traffic manager will not change the vehicle light status of a vehicle , unless its auto _ update _ status is st to True . Parameters : actor ( carla . Actor ) - Vehicle whose lights status is being changed . do _ update ( bool ) - If True the traffic manager will manage the vehicle lights for the specified vehicle . vehicle _ lane _ offset ( self , actor , offset ) Sets a lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : actor ( carla . Actor ) - Vehicle whose lane offset behaviour is being changed . offset ( float ) - Lane offset displacement from the center line . vehicle _ percentage _ speed _ difference ( self , actor , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : actor ( carla . Actor ) - Vehicle whose speed behaviour is being changed . percentage ( float ) - Percentage difference between intended speed and the current limit .","title":"Methods"},{"location":"python_api/#getters_4","text":"get _ all _ actions ( self , actor ) Returns all known actions ( i . e . road options and waypoints ) that an actor controlled by the Traffic Manager will perform in its next steps . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of lists with each element as follows - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ next _ action ( self , actor ) Returns the next known road option and waypoint that an actor controlled by the Traffic Manager will follow . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of two elements - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ port ( self ) Returns the port where the Traffic Manager is connected . If the object is a TM - Client , it will return the port of its TM - Server . Read the documentation to learn the difference . Return : uint16","title":"Getters"},{"location":"python_api/#setters_5","text":"set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) Sets the upper and lower boundaries for dormant actors to be respawned near the hero vehicle . Parameters : lower _ bound ( float ) - The minimum distance in meters from the hero vehicle that a dormant actor will be respawned . upper _ bound ( float ) - The maximum distance in meters from the hero vehicle that a dormant actor will be respawned . Warning : The upper _ bound cannot be higher than the actor _ active _ distance . The lower _ bound cannot be less than 25 . set _ desired _ speed ( self , actor , speed ) Sets the speed of a vehicle to the specified value . Parameters : actor ( carla . Actor ) - Vehicle whose speed is being changed . speed ( float ) - Desired speed at which the vehicle will move . set _ global _ distance _ to _ leading _ vehicle ( self , distance ) Sets the minimum distance in meters that vehicles have to keep with the rest . The distance is in meters and will affect the minimum moving distance . It is computed from center to center of the vehicle objects . Parameters : distance ( float - meters ) - Meters between vehicles . set _ hybrid _ physics _ mode ( self , enabled = False ) Enables or disables the hybrid physics mode . In this mode , vehicle ' s farther than a certain radius from the ego vehicle will have their physics disabled . Computation cost will be reduced by not calculating vehicle dynamics . Vehicles will be teleported . Parameters : enabled ( bool ) - If True , enables the hybrid physics . set _ hybrid _ physics _ radius ( self , r = 50.0 ) With hybrid physics on , changes the radius of the area of influence where physics are enabled . Parameters : r ( float - meters ) - New radius where physics are enabled . set _ osm _ mode ( self , mode _ switch = True ) Enables or disables the OSM mode . This mode allows the user to run TM in a map created with the OSM feature . These maps allow having dead - end streets . Normally , if vehicles cannot find the next waypoint , TM crashes . If OSM mode is enabled , it will show a warning , and destroy vehicles when necessary . Parameters : mode _ switch ( bool ) - If True , the OSM mode is enabled . set _ path ( self , actor , path ) Sets a list of locations for a vehicle to follow while controlled by the Traffic Manager . Parameters : actor ( carla . Actor ) - The actor that must follow the given path . path ( list ) - The list of carla . Locations for the actor to follow . Warning : Ensure that the road topology doesn ' t impede the given path . set _ random _ device _ seed ( self , value ) Sets a specific random seed for the Traffic Manager , thereby setting it to be deterministic . Parameters : value ( int ) - Seed value for the random number generation of the Traffic Manager . set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) If True , vehicles in large maps will respawn near the hero vehicle when they become dormant . Otherwise , they will stay dormant until they are within actor _ active _ distance of the hero vehicle again . Parameters : mode _ switch ( bool ) set _ route ( self , actor , path ) Sets a list of route instructions for a vehicle to follow while controlled by the Traffic Manager . The possible route instructions are ' Left ' , ' Right ' , ' Straight ' . Parameters : actor ( carla . Actor ) - The actor that must follow the given route instructions . path ( list ) - The list of route instructions ( string ) for the vehicle to follow . Warning : Ensure that the lane topology doesn ' t impede the given route . set _ synchronous _ mode ( self , mode _ switch = True ) Sets the Traffic Manager to synchronous mode . In a multiclient situation , only the TM - Server can tick . Similarly , in a multiTM situation , only one TM - Server must tick . Use this method in the client that does the world tick , and right after setting the world to synchronous mode , to set which TM will be the master while in sync . Parameters : mode _ switch ( bool ) - If True , the TM synchronous mode is enabled . Warning : If the server is set to synchronous mode , the TM must be set to synchronous mode too in the same client that does the tick .","title":"Setters"},{"location":"python_api/#carlatrafficsign","text":"Inherited from carla . Actor Traffic signs appearing in the simulation except for traffic lights . These have their own class inherited from this in carla . TrafficLight . Right now , speed signs , stops and yields are mainly the ones implemented , but many others are borne in mind .","title":"carla . TrafficSign"},{"location":"python_api/#instance-variables_19","text":"trigger _ volume A carla . BoundingBox situated near a traffic sign where the carla . Actor who is inside can know about it .","title":"Instance Variables"},{"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/#instance-variables_20","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":"Instance Variables"},{"location":"python_api/#methods_17","text":"__ init __ ( self , location , rotation ) Parameters : location ( carla . Location ) rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) transform ( self , in _ point ) Translates a 3D point from local to global coordinates using the current transformation as frame of reference . Parameters : in _ point ( carla . Location ) - Location in the space to which the transformation will be applied . transform _ vector ( self , in _ vector ) Rotates a vector using the current transformation as frame of reference , without applying translation . Use this to transform , for example , a velocity . Parameters : in _ vector ( carla . Vector3D ) - Vector to which the transformation will be applied .","title":"Methods"},{"location":"python_api/#getters_5","text":"get _ forward _ vector ( self ) Computes a forward vector using the rotation of the object . Return : carla . Vector3D get _ inverse _ matrix ( self ) Computes the 4 - matrix representation of the inverse transformation . Return : list ( list ( float ) ) get _ matrix ( self ) Computes the 4 - matrix representation of the transformation . Return : list ( list ( float ) ) get _ right _ vector ( self ) Computes a right vector using the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes an up vector using the rotation of the object . Return : carla . Vector3D","title":"Getters"},{"location":"python_api/#dunder-methods_16","text":"__ eq __ ( self , other = carla . Transform ) Returns True if both location and rotation are equal for this and other . Return : bool __ ne __ ( self , other = carla . Transform ) Returns True if any location and rotation are not equal for this and other . Return : bool __ str __ ( self ) Parses both location and rotation to string . Return : str","title":"Dunder methods"},{"location":"python_api/#carlavector2d","text":"Helper class to perform 2D operations .","title":"carla . Vector2D"},{"location":"python_api/#instance-variables_21","text":"x ( float ) X - axis value . y ( float ) Y - axis value .","title":"Instance Variables"},{"location":"python_api/#methods_18","text":"__ init __ ( self , x = 0.0 , y = 0.0 ) Parameters : x ( float ) y ( float ) length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float","title":"Methods"},{"location":"python_api/#dunder-methods_17","text":"__ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D )","title":"Dunder methods"},{"location":"python_api/#carlavector3d","text":"Helper class to perform 3D operations .","title":"carla . Vector3D"},{"location":"python_api/#instance-variables_22","text":"x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value .","title":"Instance Variables"},{"location":"python_api/#methods_19","text":"__ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) Parameters : x ( float ) y ( float ) z ( float ) cross ( self , vector ) Computes the cross product between two vectors . Parameters : vector ( carla . Vector3D ) Return : carla . Vector3D distance ( self , vector ) Computes the distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ 2d ( self , vector ) Computes the 2 - dimensional distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared ( self , vector ) Computes the squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared _ 2d ( self , vector ) Computes the 2 - dimensional squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot ( self , vector ) Computes the dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot _ 2d ( self , vector ) Computes the 2 - dimensional dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float","title":"Methods"},{"location":"python_api/#getters_6","text":"get _ vector _ angle ( self , vector ) Computes the angle between a pair of 3D vectors in radians . Parameters : vector ( carla . Vector3D ) Return : float","title":"Getters"},{"location":"python_api/#dunder-methods_18","text":"__ abs __ ( self ) Returns a Vector3D with the absolute value of the components x , y and z . Return : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D )","title":"Dunder methods"},{"location":"python_api/#carlavehicle","text":"Inherited from carla . Actor One of the most important groups of actors in CARLA . These include any type of vehicle from cars to trucks , motorbikes , vans , bycicles and also official vehicles such as police cars . A wide set of these actors is provided in carla . BlueprintLibrary to facilitate differente requirements . Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client - side by the traffic manager .","title":"carla . Vehicle"},{"location":"python_api/#instance-variables_23","text":"bounding _ box ( carla . BoundingBox ) Bounding box containing the geometry of the vehicle . Its location and rotation are relative to the vehicle it is attached to .","title":"Instance Variables"},{"location":"python_api/#methods_20","text":"apply _ ackermann _ control ( self , control ) Applies an Ackermann control object on the next tick . Parameters : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) Applies a new Ackermann control settings to this vehicle in the next tick . Parameters : settings ( carla . AckermannControllerSettings ) Warning : This method does call the simulator . apply _ control ( self , control ) Applies a control object on the next tick , containing driving parameters such as throttle , steering or gear shifting . Parameters : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) Applies a physics control object in the next tick containing the parameters that define the vehicle as a corporeal body . E . g . : moment of inertia , mass , drag coefficient and many more . Parameters : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) Close the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to close all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . enable _ carsim ( self , simfile _ path ) Enables the CarSim physics solver for this particular vehicle . In order for this function to work , there needs to be a valid license manager running on the server side . The control inputs are redirected to CarSim which will provide the position and orientation of the vehicle for every frame . Parameters : simfile _ path ( str ) - Path to the . simfile file with the parameters of the simulation . enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) Enables Chrono physics on a spawned vehicle . Parameters : max _ substeps ( int ) - Max number of Chrono substeps . max _ substep _ delta _ time ( int ) - Max size of substep . vehicle _ json ( str ) - Path to vehicle json file relative to base _ json _ path . powertrain _ json ( str ) - Path to powertrain json file relative to base _ json _ path . tire _ json ( str ) - Path to tire json file relative to base _ json _ path . base _ json _ path ( str ) - Path to chrono / data / vehicle folder . E . g . , / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( the final / character is required ) . Note : Ensure that you have started the CARLA server with the ARGS = \" -- chrono \" flag . You will not be able to use Chrono physics without this flag set . Warning : Collisions are not supported . When a collision is detected , physics will revert to the default CARLA physics . is _ at _ traffic _ light ( self ) Vehicles will be affected by a traffic light when the light is red and the vehicle is inside its bounding box . The client returns whether a traffic light is affecting this vehicle according to last tick ( it does not call the simulator ) . Return : bool open _ door ( self , door _ idx ) Open the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to open all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . show _ debug _ telemetry ( self , enabled = True ) Enables or disables the telemetry on this vehicle . This shows information about the vehicles current state and forces applied to it in the spectator window . Only information for one vehicle can be shown so that , if you enable a second one , the previous will be automatically disabled . Parameters : enabled ( bool ) use _ carsim _ road ( self , enabled ) Enables or disables the usage of CarSim vs terrain file specified in the . simfile . By default this option is disabled and CarSim uses unreal engine methods to process the geometry of the scene . Parameters : enabled ( bool )","title":"Methods"},{"location":"python_api/#getters_7","text":"get _ ackermann _ controller _ settings ( self ) Returns the last Ackermann control settings applied to this vehicle . Return : carla . AckermannControllerSettings Warning : This method does call the simulator to retrieve the value . get _ control ( self ) The client returns the control applied in the last tick . The method does not call the simulator . Return : carla . VehicleControl get _ failure _ state ( self ) Vehicle have failure states , to indicate that it is incapable of continuing its route . This function returns the vehicle ' s specific failure state , or in other words , the cause that resulted in it . Return : carla . VehicleFailureState get _ light _ state ( self ) Returns a flag representing the vehicle light state , this represents which lights are active or not . Return : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) The simulator returns the last physics control applied to this vehicle . Return : carla . VehiclePhysicsControl Warning : This method does call the simulator to retrieve the value . get _ speed _ limit ( self ) The client returns the speed limit affecting this vehicle according to last tick ( it does not call the simulator ) . The speed limit is updated when passing by a speed limit signal , so a vehicle might have none right after spawning . Return : float - km / h get _ traffic _ light ( self ) Retrieves the traffic light actor affecting this vehicle ( if any ) according to last tick . The method does not call the simulator . Return : carla . TrafficLight get _ traffic _ light _ state ( self ) The client returns the state of the traffic light affecting this vehicle according to last tick . The method does not call the simulator . If no traffic light is currently affecting the vehicle , returns green . Return : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) Returns the physics angle in degrees of a vehicle ' s wheel . Parameters : wheel _ location ( carla . VehicleWheelLocation ) Return : float Note : Returns the angle based on the physics of the wheel , not the visual angle .","title":"Getters"},{"location":"python_api/#setters_6","text":"set _ autopilot ( self , enabled = True , port = 8000 ) Registers or deletes the vehicle from a Traffic Manager ' s list . When True , the Traffic Manager passed as parameter will move the vehicle around . The autopilot takes place client - side . Parameters : enabled ( bool ) port ( uint16 ) - The port of the TM - Server where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 . set _ light _ state ( self , light _ state ) Sets the light state of a vehicle using a flag that represents the lights that are on and off . Parameters : light _ state ( carla . VehicleLightState ) Getter : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 Sets the angle of a vehicle ' s wheel visually . Parameters : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) Warning : Does not affect the physics of the vehicle .","title":"Setters"},{"location":"python_api/#dunder-methods_19","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehicleackermanncontrol","text":"Manages the basic movement of a vehicle using Ackermann driving controls .","title":"carla . VehicleAckermannControl"},{"location":"python_api/#instance-variables_24","text":"steer ( float ) Desired steer ( rad ) . Positive value is to the right . Default is 0.0 . steer _ speed ( float ) Steering velocity ( rad / s ) . Zero steering angle velocity means change the steering angle as quickly as possible . Default is 0.0 . speed ( float ) Desired speed ( m / s ) . Default is 0.0 . acceleration ( float ) Desired acceleration ( m / s2 ) Default is 0.0 . jerk ( float ) Desired jerk ( m / s3 ) . Default is 0.0 .","title":"Instance Variables"},{"location":"python_api/#methods_21","text":"__ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) Parameters : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float )","title":"Methods"},{"location":"python_api/#dunder-methods_20","text":"__ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehiclecontrol","text":"Manages the basic movement of a vehicle using typical driving controls .","title":"carla . VehicleControl"},{"location":"python_api/#instance-variables_25","text":"throttle ( float ) A scalar value to control the vehicle throttle [ 0.0 , 1.0 ] . Default is 0.0 . steer ( float ) A scalar value to control the vehicle steering [ - 1.0 , 1.0 ] . Default is 0.0 . brake ( float ) A scalar value to control the vehicle brake [ 0.0 , 1.0 ] . Default is 0.0 . hand _ brake ( bool ) Determines whether hand brake will be used . Default is False . reverse ( bool ) Determines whether the vehicle will move backwards . Default is False . manual _ gear _ shift ( bool ) Determines whether the vehicle will be controlled by changing gears manually . Default is False . gear ( int ) States which gear is the vehicle running on .","title":"Instance Variables"},{"location":"python_api/#methods_22","text":"__ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) Parameters : throttle ( float ) - Scalar value between [ 0.0 , 1.0 ] . steer ( float ) - Scalar value between [ 0.0 , 1.0 ] . brake ( float ) - Scalar value between [ 0.0 , 1.0 ] . hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int )","title":"Methods"},{"location":"python_api/#dunder-methods_21","text":"__ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehicledoor","text":"Possible index representing the possible doors that can be open . Notice that not all possible doors are able to open in some vehicles .","title":"carla . VehicleDoor"},{"location":"python_api/#instance-variables_26","text":"FL Front left door . FR Front right door . RL Back left door . RR Back right door . All Represents all doors .","title":"Instance Variables"},{"location":"python_api/#carlavehiclefailurestate","text":"Enum containing the different failure states of a vehicle , from which the it cannot recover . These are returned by get _ failure _ state ( ) and only Rollover is currently implemented .","title":"carla . VehicleFailureState"},{"location":"python_api/#instance-variables_27","text":"NONE Rollover Engine TirePuncture","title":"Instance Variables"},{"location":"python_api/#carlavehiclelightstate","text":"Class that recaps the state of the lights of a vehicle , these can be used as a flags . E . g : VehicleLightState . HighBeam & VehicleLightState . Brake will return True when both are active . Lights are off by default in any situation and should be managed by the user via script . The blinkers blink automatically . Warning : Right now , not all vehicles have been prepared to work with this functionality , this will be added to all of them in later updates .","title":"carla . VehicleLightState"},{"location":"python_api/#instance-variables_28","text":"NONE All lights off . Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 This is reserved for certain vehicles that can have special lights , like a siren . Special2 This is reserved for certain vehicles that can have special lights , like a siren . All All lights on .","title":"Instance Variables"},{"location":"python_api/#carlavehiclephysicscontrol","text":"Summarizes the parameters that will be used to simulate a carla . Vehicle as a physical object . The specific settings for the wheels though are stipulated using carla . WheelPhysicsControl .","title":"carla . VehiclePhysicsControl"},{"location":"python_api/#instance-variables_29","text":"torque _ curve ( list ( carla . Vector2D ) ) Curve that indicates the torque measured in Nm for a specific RPM of the vehicle ' s engine . max _ rpm ( float ) The maximum RPM of the vehicle ' s engine . moi ( float - kg * m 2 ) The moment of inertia of the vehicle ' s engine . damping _ rate _ full _ throttle ( float ) Damping ratio when the throttle is maximum . damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) Damping ratio when the throttle is zero with clutch engaged . damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) Damping ratio when the throttle is zero with clutch disengaged . use _ gear _ autobox ( bool ) If True , the vehicle will have an automatic transmission . gear _ switch _ time ( float - seconds ) Switching time between gears . clutch _ strength ( float - kg * m 2 / s ) Clutch strength of the vehicle . final _ ratio ( float ) Fixed ratio from transmission to wheels . forward _ gears ( list ( carla . GearPhysicsControl ) ) List of objects defining the vehicle ' s gears . mass ( float - kilograms ) Mass of the vehicle . drag _ coefficient ( float ) Drag coefficient of the vehicle ' s chassis . center _ of _ mass ( carla . Vector3D - meters ) Center of mass of the vehicle . steering _ curve ( list ( carla . Vector2D ) ) Curve that indicates the maximum steering for a specific forward speed . use _ sweep _ wheel _ collision ( bool ) Enable the use of sweep for wheel collision . By default , it is disabled and it uses a simple raycast from the axis to the floor for each wheel . This option provides a better collision model in which the full volume of the wheel is checked against collisions . wheels ( list ( carla . WheelPhysicsControl ) ) List of wheel physics objects . This list should have 4 elements , where index 0 corresponds to the front left wheel , index 1 corresponds to the front right wheel , index 2 corresponds to the back left wheel and index 3 corresponds to the back right wheel . For 2 wheeled vehicles , set the same values for both front and back wheels .","title":"Instance Variables"},{"location":"python_api/#methods_23","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 constructor . Parameters : 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":"Methods"},{"location":"python_api/#dunder-methods_22","text":"__ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehiclewheellocation","text":"enum representing the position of each wheel on a vehicle . Used to identify the target wheel when setting an angle in carla . Vehicle . set _ wheel _ steer _ direction or carla . Vehicle . get _ wheel _ steer _ angle .","title":"carla . VehicleWheelLocation"},{"location":"python_api/#instance-variables_30","text":"FL _ Wheel Front left wheel of a 4 wheeled vehicle . FR _ Wheel Front right wheel of a 4 wheeled vehicle . BL _ Wheel Back left wheel of a 4 wheeled vehicle . BR _ Wheel Back right wheel of a 4 wheeled vehicle . Front _ Wheel Front wheel of a 2 wheeled vehicle . Back _ Wheel Back wheel of a 2 wheeled vehicle .","title":"Instance Variables"},{"location":"python_api/#carlawalker","text":"Inherited from carla . Actor This class inherits from the carla . Actor and defines pedestrians in the simulation . Walkers are a special type of actor that can be controlled either by an AI ( carla . WalkerAIController ) or manually via script , using a series of carla . WalkerControl to move these and their skeletons .","title":"carla . Walker"},{"location":"python_api/#methods_24","text":"apply _ control ( self , control ) On the next tick , the control will move the walker in a certain direction with a certain speed . Jumps can be commanded too . Parameters : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) Set the blending value of the custom pose with the animation . The values can be : 0 : will show only the animation 1 : will show only the custom pose ( set by the user with set _ bones ( ) ) any other : will interpolate all the bone positions between animation and the custom pose . Parameters : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) Hide the custom pose and show the animation ( same as calling blend _ pose ( 0 ) ) . show _ pose ( self ) Show the custom pose and hide the animation ( same as calling blend _ pose ( 1 ) ) .","title":"Methods"},{"location":"python_api/#getters_8","text":"get _ bones ( self ) Return the structure with all the bone transformations from the actor . For each bone , we get the name and its transform in three different spaces : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent . Return : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) The client returns the control applied to this walker during last tick . The method does not call the simulator . Return : carla . WalkerControl get _ pose _ from _ animation ( self ) Make a copy of the current animation frame as the custom pose . Initially the custom pose is the neutral pedestrian pose .","title":"Getters"},{"location":"python_api/#setters_7","text":"set _ bones ( self , bones ) Set the bones of the actor . For each bone we want to set we use a relative transform . Only the bones in this list will be set . For each bone you need to setup this info : name : bone name relative : transform based on the bone parent . Parameters : bones ( carla . WalkerBoneControlIn - list of pairs ( bone _ name , transform ) for the bones that we want to set ) Getter : carla . Walker . get _ bones","title":"Setters"},{"location":"python_api/#dunder-methods_23","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkeraicontroller","text":"Inherited from carla . Actor Class that conducts AI control for a walker . The controllers are defined as actors , but they are quite different from the rest . They need to be attached to a parent actor during their creation , which is the walker they will be controlling ( take a look at carla . World if you are yet to learn on how to spawn actors ) . They also need for a special blueprint ( already defined in carla . BlueprintLibrary as \" controller . ai . walker \" ) . This is an empty blueprint , as the AI controller will be invisible in the simulation but will follow its parent around to dictate every step of the way .","title":"carla . WalkerAIController"},{"location":"python_api/#methods_25","text":"go _ to _ location ( self , destination ) Sets the destination that the pedestrian will reach . Parameters : destination ( carla . Location - meters ) start ( self ) Enables AI control for its parent walker . stop ( self ) snippet \u2192 Disables AI control for its parent walker .","title":"Methods"},{"location":"python_api/#setters_8","text":"set _ max _ speed ( self , speed = 1.4 ) Sets a speed for the walker in meters per second . Parameters : speed ( float - m / s ) - An easy walking speed is set by default .","title":"Setters"},{"location":"python_api/#dunder-methods_24","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkerbonecontrolin","text":"This class grants bone specific manipulation for walker . The skeletons of walkers have been unified for clarity and the transform applied to each bone are always relative to its parent . Take a look here to learn more on how to create a walker and define its movement .","title":"carla . WalkerBoneControlIn"},{"location":"python_api/#instance-variables_31","text":"bone _ transforms ( list ( [ name , transform ] ) ) List with the data for each bone we want to set : name : bone name relative : transform based on the bone parent .","title":"Instance Variables"},{"location":"python_api/#methods_26","text":"__ init __ ( self , list ( name , transform ) ) Initializes an object containing moves to be applied on tick . These are listed with the name of the bone and the transform that will be applied to it . Parameters : list ( name , transform ) ( tuple )","title":"Methods"},{"location":"python_api/#dunder-methods_25","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkerbonecontrolout","text":"This class is used to return all bone positions of a pedestrian . For each bone we get its name and its transform in three different spaces ( world , actor and relative ) .","title":"carla . WalkerBoneControlOut"},{"location":"python_api/#instance-variables_32","text":"bone _ transforms ( list ( [ name , world , actor , relative ] ) ) List of one entry per bone with this information : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent .","title":"Instance Variables"},{"location":"python_api/#methods_27","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_26","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkercontrol","text":"This class defines specific directions that can be commanded to a carla . Walker to control it via script . AI control can be settled for walkers , but the control used to do so is carla . WalkerAIController .","title":"carla . WalkerControl"},{"location":"python_api/#instance-variables_33","text":"direction ( carla . Vector3D ) Vector using global coordinates that will correspond to the direction of the walker . speed ( float - m / s ) A scalar value to control the walker ' s speed . jump ( bool ) If True , the walker will perform a jump .","title":"Instance Variables"},{"location":"python_api/#methods_28","text":"__ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) Parameters : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool )","title":"Methods"},{"location":"python_api/#dunder-methods_27","text":"__ eq __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if these are all the same . __ ne __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if any of these differ . __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawaypoint","text":"Waypoints in CARLA are described as 3D directed points . They have a carla . Transform which locates the waypoint in a road and orientates it according to the lane . They also store the road information belonging to said point regarding its lane and lane markings . All the information regarding waypoints and the waypoint API is retrieved as provided by the OpenDRIVE file . Once the client asks for the map object to the server , no longer communication will be needed .","title":"carla . Waypoint"},{"location":"python_api/#instance-variables_34","text":"id ( int ) The identifier is generated using a hash combination of the road , section , lane and s values that correspond to said point in the OpenDRIVE geometry . The s precision is set to 2 centimeters , so 2 waypoints closer than 2 centimeters in the same road , section and lane , will have the same identificator . transform ( carla . Transform ) Position and orientation of the waypoint according to the current lane information . This data is computed the first time it is accessed . It is not created right away in order to ease computing costs when lots of waypoints are created but their specific transform is not needed . road _ id ( int ) OpenDRIVE road ' s id . section _ id ( int ) OpenDRIVE section ' s id , based on the order that they are originally defined . is _ junction ( bool ) True if the current Waypoint is on a junction as defined by OpenDRIVE . junction _ id ( int ) OpenDRIVE junction ' s id . For more information refer to OpenDRIVE documentation . lane _ id ( int ) OpenDRIVE lane ' s id , this value can be positive or negative which represents the direction of the current lane with respect to the road . For more information refer to OpenDRIVE documentation . s ( float ) OpenDRIVE s value of the current position . lane _ width ( float ) Horizontal size of the road at current s . lane _ change ( carla . LaneChange ) Lane change definition of the current Waypoint ' s location , based on the traffic rules defined in the OpenDRIVE file . It states if a lane change can be done and in which direction . lane _ type ( carla . LaneType ) The lane type of the current Waypoint , based on OpenDRIVE 1.4 standard . right _ lane _ marking ( carla . LaneMarking ) The right lane marking information based on the direction of the Waypoint . left _ lane _ marking ( carla . LaneMarking ) The left lane marking information based on the direction of the Waypoint .","title":"Instance Variables"},{"location":"python_api/#methods_29","text":"next ( self , distance ) Returns a list of waypoints at a certain approximate distance from the current one . It takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the next waypoints . Return : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) Returns a list of waypoints from this to the end of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint ) previous ( self , distance ) This method does not return the waypoint previously visited by an actor , but a list of waypoints at an approximate distance but in the opposite direction of the lane . Similarly to next ( ) , it takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the previous waypoints . Return : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) Returns a list of waypoints from this to the start of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint )","title":"Methods"},{"location":"python_api/#getters_9","text":"get _ junction ( self ) If the waypoint belongs to a junction this method returns the associated junction object . Otherwise returns null . Return : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) Returns a list of landmarks in the road from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) Returns a list of landmarks in the road of a specified type from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . type ( str ) - The type of landmarks to search . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ left _ lane ( self ) Generates a Waypoint at the center of the left lane based on the direction of the current Waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint get _ right _ lane ( self ) Generates a waypoint at the center of the right lane based on the direction of the current waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint","title":"Getters"},{"location":"python_api/#dunder-methods_28","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlaweatherparameters","text":"This class defines objects containing lighting and weather specifications that can later be applied in carla . World . So far , these conditions only intervene with sensor . camera . rgb . They neither affect the actor ' s physics nor other sensors . Each of these parameters acts indepently from the rest . Increasing the rainfall will not automatically create puddles nor change the road ' s humidity . That makes for a better customization but means that realistic conditions need to be scripted . However an example of dynamic weather conditions working realistically can be found here .","title":"carla . WeatherParameters"},{"location":"python_api/#instance-variables_35","text":"cloudiness ( float ) Values range from 0 to 100 , being 0 a clear sky and 100 one completely covered with clouds . precipitation ( float ) Rain intensity values range from 0 to 100 , being 0 none at all and 100 a heavy rain . precipitation _ deposits ( float ) Determines the creation of puddles . Values range from 0 to 100 , being 0 none at all and 100 a road completely capped with water . Puddles are created with static noise , meaning that they will always appear at the same locations . wind _ intensity ( float ) Controls the strenght of the wind with values from 0 , no wind at all , to 100 , a strong wind . The wind does affect rain direction and leaves from trees , so this value is restricted to avoid animation issues . sun _ azimuth _ angle ( float - degrees ) The azimuth angle of the sun . Values range from 0 to 360 . Zero is an origin point in a sphere determined by Unreal Engine . sun _ altitude _ angle ( float - degrees ) Altitude angle of the sun . Values range from - 90 to 90 corresponding to midnight and midday each . fog _ density ( float ) Fog concentration or thickness . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ distance ( float - meters ) Fog start distance . Values range from 0 to infinite . wetness ( float ) Wetness intensity . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ falloff ( float ) Density of the fog ( as in specific mass ) from 0 to infinity . The bigger the value , the more dense and heavy it will be , and the fog will reach smaller heights . Corresponds to Fog Height Falloff in the UE docs . If the value is 0 , the fog will be lighter than air , and will cover the whole scene . A value of 1 is approximately as dense as the air , and reaches normal - sized buildings . For values greater than 5 , the air will be so dense that it will be compressed on ground level . scattering _ intensity ( float ) Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . dust _ storm ( float ) Determines the strength of the dust storm weather . Values range from 0 to 100 .","title":"Instance Variables"},{"location":"python_api/#methods_30","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 ) Method to initialize an object defining weather conditions . This class has some presets for different noon and sunset conditions listed in a note below . Parameters : cloudiness ( float ) - 0 is a clear sky , 100 complete overcast . precipitation ( float ) - 0 is no rain at all , 100 a heavy rain . precipitation _ deposits ( float ) - 0 means no puddles on the road , 100 means roads completely capped by rain . wind _ intensity ( float ) - 0 is calm , 100 a strong wind . sun _ azimuth _ angle ( float - degrees ) - 0 is an arbitrary North , 180 its corresponding South . sun _ altitude _ angle ( float - degrees ) - 90 is midday , - 90 is midnight . fog _ density ( float ) - Concentration or thickness of the fog , from 0 to 100 . fog _ distance ( float - meters ) - Distance where the fog starts in meters . wetness ( float ) - Humidity percentages of the road , from 0 to 100 . fog _ falloff ( float ) - Density ( specific mass ) of the fog , from 0 to infinity . scattering _ intensity ( float ) - Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) - Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) - Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . Note : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset .","title":"Methods"},{"location":"python_api/#dunder-methods_29","text":"__ eq __ ( self , other ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawheelphysicscontrol","text":"Class that defines specific physical parameters for wheel objects that will be part of a carla . VehiclePhysicsControl to simulate vehicle it as a material object .","title":"carla . WheelPhysicsControl"},{"location":"python_api/#instance-variables_36","text":"tire _ friction ( float ) A scalar value that indicates the friction of the wheel . damping _ rate ( float ) Damping rate of the wheel . max _ steer _ angle ( float - degrees ) Maximum angle that the wheel can steer . radius ( float - centimeters ) Radius of the wheel . max _ brake _ torque ( float - N * m ) Maximum brake torque . max _ handbrake _ torque ( float - N * m ) Maximum handbrake torque . position ( carla . Vector3D ) World position of the wheel . This is a read - only parameter . long _ stiff _ value ( float - kg per radian ) Tire longitudinal stiffness per unit gravitational acceleration . Each vehicle has a custom value . lat _ stiff _ max _ load ( float ) Maximum normalized tire load at which the tire can deliver no more lateral stiffness no matter how much extra load is applied to the tire . Each vehicle has a custom value . lat _ stiff _ value ( float ) Maximum stiffness per unit of lateral slip . Each vehicle has a custom value .","title":"Instance Variables"},{"location":"python_api/#methods_31","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 ) ) Parameters : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - degrees ) radius ( float - centimerers ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - meters )","title":"Methods"},{"location":"python_api/#dunder-methods_30","text":"__ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlaworld","text":"World objects are created by the client to have a place for the simulation to happen . The world contains the map we can see , meaning the asset , not the navigation map . Navigation maps are part of the carla . Map class . It also manages the weather and actors present in it . There can only be one world per simulation , but it can be changed anytime .","title":"carla . World"},{"location":"python_api/#instance-variables_37","text":"id ( int ) The ID of the episode associated with this world . Episodes are different sessions of a simulation . These change everytime a world is disabled or reloaded . Keeping track is useful to avoid possible issues . debug ( carla . DebugHelper ) Responsible for creating different shapes for debugging . Take a look at its class to learn more about it .","title":"Instance Variables"},{"location":"python_api/#methods_32","text":"apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) This method applies settings contained in an object to the simulation running and returns the ID of the frame they were implemented . Parameters : world _ settings ( carla . WorldSettings ) Return : int Warning : If synchronous mode is enabled , and there is a Traffic Manager running , this must be set to sync mode too . Read this to learn how to do it . apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) Applies all texture fields in carla . MaterialParameter to the object object _ name . Empty textures here will not be applied . Parameters : 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 ) Applies all texture fields in carla . MaterialParameter to all objects in objects _ name _ list . Empty textures here will not be applied . Parameters : 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 ) Casts a ray from the specified initial _ location to final _ location . The function then detects all geometries intersecting the ray and returns a list of carla . LabelledPoint in order . Parameters : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . Return : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 Enable or disable a set of EnvironmentObject identified by their id . These objects will appear or disappear from the level . Parameters : env _ objects _ ids ( set ( int ) ) - Set of EnvironmentObject ids to change . enable ( bool ) - State to be applied to all the EnvironmentObject of the set . freeze _ all _ traffic _ lights ( self , frozen ) Freezes or unfreezes all traffic lights in the scene . Frozen traffic lights can be modified by the user but the time will not update them until unfrozen . Parameters : frozen ( bool ) ground _ projection ( self , location , search _ distance ) Projects the specified point downwards in the scene . The functions casts a ray from location in the direction ( 0 , 0 , - 1 ) ( downwards ) and returns a carla . LabelledPoint object with the first geometry this ray intersects ( usually the ground ) . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 Return : int project _ point ( self , location , direction , search _ distance ) Projects the specified point to the desired direction in the scene . The functions casts a ray from location in a direction and returns a carla . Labelled object with the first geometry this ray intersects . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . direction ( carla . Vector3D ) - The direction of projection . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) Stops the callback for callback _ id started with on _ tick ( ) . Parameters : callback _ id ( callback ) - The callback to be removed . The ID is returned when creating the callback . reset _ all _ traffic _ lights ( self ) Resets the cycle of all traffic lights in the map to the initial state . spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 The method will create , return and spawn an actor into the world . The actor will need an available blueprint to be created and a transform ( location and rotation ) . It can also be attached to a parent with a certain attachment type . Parameters : blueprint ( carla . ActorBlueprint ) - The reference from which the actor will be created . transform ( carla . Transform ) - Contains the location and orientation the actor will be spawned with . attach _ to ( carla . Actor ) - The parent object that the spawned actor will follow around . attachment ( carla . AttachmentType ) - Determines how fixed and rigorous should be the changes in position according to its parent object . Return : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u3002 It makes the client wait for a server tick . When the next frame is computed , the server will tick and return a snapshot describing the new state of the world . Parameters : seconds ( float - seconds ) - Maximum time the server should wait for a tick . It is set to 10.0 by default . Return : carla . WorldSnapshot","title":"Methods"},{"location":"python_api/#getters_10","text":"get _ actor ( self , actor _ id ) Looks up for an actor by ID and returns None if not found . Parameters : actor _ id ( int ) Return : carla . Actor get _ actors ( self , actor _ ids = None ) Retrieves a list of carla . Actor elements , either using a list of IDs provided or just listing everyone on stage . If an ID does not correspond with any actor , it will be excluded from the list returned , meaning that both the list of IDs and the list of actors may have different lengths . Parameters : actor _ ids ( list ) - The IDs of the actors being searched . By default it is set to None and returns every actor on scene . Return : carla . ActorList get _ blueprint _ library ( self ) Returns a list of actor blueprints available to ease the spawn of these into the world . Return : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) Returns a list of EnvironmentObject with the requested semantic tag . The method returns all the EnvironmentObjects in the level by default , but the query can be filtered by semantic tags with the argument object _ type . Parameters : object _ type ( carla . CityObjectLabel ) - Semantic tag of the EnvironmentObjects that are returned . Return : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) Returns an array of bounding boxes with location and rotation in world space . The method returns all the bounding boxes in the level by default , but the query can be filtered by semantic tags with the argument actor _ type . Parameters : actor _ type ( carla . CityObjectLabel ) - Semantic tag of the elements contained in the bounding boxes that are returned . Return : array ( carla . BoundingBox ) get _ lightmanager ( self ) Returns an instance of carla . LightManager that can be used to handle the lights in the scene . Return : carla . LightManager get _ map ( self ) Asks the server for the XODR containing the map file , and returns this parsed as a carla . Map . Return : carla . Map Warning : This method does call the simulation . It is expensive , and should only be called once . get _ names _ of _ all _ objects ( self ) Returns a list of the names of all objects in the scene that can be painted with the apply texture functions . Return : list ( str ) get _ random _ location _ from _ navigation ( self ) This can only be used with walkers . It retrieves a random location to be used as a destination using the go _ to _ location ( ) method in carla . WalkerAIController . This location will be part of a sidewalk . Roads , crosswalks and grass zones are excluded . The method does not take into consideration locations of existing actors so if a collision happens when trying to spawn an actor , it will return an error . Take a look at generate _ traffic . py for an example . Return : carla . Location get _ settings ( self ) Returns an object containing some data about the simulation such as synchrony between client and server or rendering mode . Return : carla . WorldSettings get _ snapshot ( self ) Returns a snapshot of the world at a certain moment comprising all the information about the actors . Return : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 Returns the spectator actor . The spectator is a special type of actor created by Unreal Engine , usually with ID = 0 , that acts as a camera and controls the view in the simulator window . Return : carla . Actor get _ traffic _ light ( self , landmark ) Provided a landmark , returns the traffic light object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic light . Return : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) Returns the traffic light actor corresponding to the indicated OpenDRIVE id . Parameters : traffic _ light _ id ( str ) - The OpenDRIVE id . Return : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) This function performs a search along the road in front of the specified waypoint and returns a list of traffic light actors found in the specified search distance . Parameters : waypoint ( carla . Waypoint ) - The input waypoint . distance ( float ) - Search distance . Return : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) Returns the list of traffic light actors affecting the junction indicated in junction _ id . Parameters : junction _ id ( int ) - The id of the junction . Return : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) Provided a landmark , returns the traffic sign object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic sign . Return : carla . TrafficSign get _ vehicles _ light _ states ( self ) Returns a dict where the keys are carla . Actor IDs and the values are carla . VehicleLightState of that vehicle . Return : dict get _ weather ( self ) Retrieves an object containing weather parameters currently active in the simulation , mainly cloudiness , precipitation , wind and sun position . Return : carla . WeatherParameters Setter : carla . World . set _ weather","title":"Getters"},{"location":"python_api/#setters_9","text":"set _ pedestrians _ cross _ factor ( self , percentage ) Parameters : percentage ( float ) - Sets the percentage of pedestrians that can walk on the road or cross at any point on the road . Value should be between 0.0 and 1.0 . For example , a value of 0.1 would allow 10% of pedestrians to walk on the road . Default is 0.0 . Note : Should be set before pedestrians are spawned . set _ pedestrians _ seed ( self , seed ) Parameters : seed ( int ) - Sets the seed to use for any random number generated in relation to pedestrians . Note : Should be set before pedestrians are spawned . If you want to repeat the same exact bodies ( blueprint ) for each pedestrian , then use the same seed in the Python code ( where the blueprint is choosen randomly ) and here , otherwise the pedestrians will repeat the same paths but the bodies will be different . set _ weather ( self , weather ) Changes the weather parameteres ruling the simulation to another ones defined in an object . Parameters : weather ( carla . WeatherParameters ) - New conditions to be applied . Getter : carla . World . get _ weather","title":"Setters"},{"location":"python_api/#dunder-methods_31","text":"__ str __ ( self ) The content of the world is parsed and printed as a brief report of its current state . Return : string","title":"Dunder methods"},{"location":"python_api/#carlaworldsettings","text":"The simulation has some advanced configuration options that are contained in this class and can be managed using carla . World and its methods . These allow the user to choose between client - server synchrony / asynchrony , activation of \" no rendering mode \" and either if the simulation should run with a fixed or variable time - step . Check this out if you want to learn about it .","title":"carla . WorldSettings"},{"location":"python_api/#instance-variables_38","text":"synchronous _ mode ( bool ) States the synchrony between client and server . When set to true , the server will wait for a client tick in order to move forward . It is false by default . no _ rendering _ mode ( bool ) When enabled , the simulation will run no rendering at all . This is mainly used to avoid overhead during heavy traffic simulations . It is false by default . fixed _ delta _ seconds ( float ) Ensures that the time elapsed between two steps of the simulation is fixed . Set this to 0.0 to work with a variable time - step , as happens by default . substepping ( bool ) Enable the physics substepping . This option allows computing some physics substeps between two render frames . If synchronous mode is set , the number of substeps and its time interval are fixed and computed are so they fulfilled the requirements of carla . WorldSettings . max _ substep and carla . WorldSettings . max _ substep _ delta _ time . These last two parameters need to be compatible with carla . WorldSettings . fixed _ delta _ seconds . Enabled by default . max _ substep _ delta _ time ( float ) Maximum delta time of the substeps . If the carla . WorldSettingsmax _ substep is high enough , the substep delta time would be always below or equal to this value . By default , the value is set to 0.01 . max _ substeps ( int ) The maximum number of physics substepping that are allowed . By default , the value is set to 10 . max _ culling _ distance ( float ) Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) Defines wether to use deterministic physics for pedestrian death animations or physical ragdoll simulation . When enabled , pedestrians have less realistic death animation but ensures determinism . When disabled , pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinsm can be ensured . tile _ stream _ distance ( float ) Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . Regions of the map within this range will be visible ( and capable of simulating physics ) . Regions outside this region will not be loaded . actor _ active _ distance ( float ) Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . Actors within this range will be active , and actors outside will become dormant . spectator _ as _ ego ( bool ) Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps . By default , the spectator will provoke loading of neighboring tiles in the absence of an ego actor . This might be inconvenient for applications that immediately spawn an ego actor .","title":"Instance Variables"},{"location":"python_api/#methods_33","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 ) Creates an object containing desired settings that could later be applied through carla . World and its method apply _ settings ( ) . Parameters : synchronous _ mode ( bool ) - Set this to true to enable client - server synchrony . no _ rendering _ mode ( bool ) - Set this to true to completely disable rendering in the simulation . fixed _ delta _ seconds ( float - seconds ) - Set a fixed time - step in between frames . 0.0 means variable time - step and it is the default mode . max _ culling _ distance ( float - meters ) - Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) - Defines wether to use deterministic physics or ragdoll simulation for pedestrian deaths . tile _ stream _ distance ( float - meters ) - Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . actor _ active _ distance ( float - meters ) - Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . spectator _ as _ ego ( bool ) - Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps .","title":"Methods"},{"location":"python_api/#dunder-methods_32","text":"__ eq __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self ) Parses the established settings to a string and shows them in command line . Return : str","title":"Dunder methods"},{"location":"python_api/#carlaworldsnapshot","text":"This snapshot comprises all the information for every actor on scene at a certain moment of time . It creates and gives acces to a data structure containing a series of carla . ActorSnapshot . The client recieves a new snapshot on every tick that cannot be stored .","title":"carla . WorldSnapshot"},{"location":"python_api/#instance-variables_39","text":"id ( int ) A value unique for every snapshot to differentiate them . frame ( int ) Simulation frame in which the snapshot was taken . timestamp ( carla . Timestamp - seconds ) Precise moment in time when snapshot was taken . This class works in seconds as given by the operative system .","title":"Instance Variables"},{"location":"python_api/#methods_34","text":"find ( self , actor _ id ) Given a certain actor ID , returns its corresponding snapshot or None if it is not found . Parameters : actor _ id ( int ) Return : carla . ActorSnapshot has _ actor ( self , actor _ id ) Given a certain actor ID , checks if there is a snapshot corresponding it and so , if the actor was present at that moment . Parameters : actor _ id ( int ) Return : bool","title":"Methods"},{"location":"python_api/#dunder-methods_33","text":"__ eq __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are the same . Return : bool __ iter __ ( self ) Iterate over the carla . ActorSnapshot stored in the snapshot . __ len __ ( self ) Returns the amount of carla . ActorSnapshot present in this snapshot . Return : int __ ne __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are different . Return : bool","title":"Dunder methods"},{"location":"python_api/#commandapplyangularimpulse","text":"Command adaptation of add _ angular _ impulse ( ) in carla . Actor . Applies an angular impulse to an actor .","title":"command . ApplyAngularImpulse"},{"location":"python_api/#instance-variables_40","text":"actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) Angular impulse applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_35","text":"__ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - degrees * s )","title":"Methods"},{"location":"python_api/#commandapplyforce","text":"Command adaptation of add _ force ( ) in carla . Actor . Applies a force to an actor .","title":"command . ApplyForce"},{"location":"python_api/#instance-variables_41","text":"actor _ id ( int ) Actor affected by the command . force ( carla . Vector3D - N ) Force applied to the actor over time .","title":"Instance Variables"},{"location":"python_api/#methods_36","text":"__ init __ ( self , actor , force ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . force ( carla . Vector3D - N )","title":"Methods"},{"location":"python_api/#commandapplyimpulse","text":"Command adaptation of add _ impulse ( ) in carla . Actor . Applies an impulse to an actor .","title":"command . ApplyImpulse"},{"location":"python_api/#instance-variables_42","text":"actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - N * s ) Impulse applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_37","text":"__ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - N * s )","title":"Methods"},{"location":"python_api/#commandapplytargetangularvelocity","text":"Command adaptation of set _ target _ angular _ velocity ( ) in carla . Actor . Sets the actor ' s angular velocity vector .","title":"command . ApplyTargetAngularVelocity"},{"location":"python_api/#instance-variables_43","text":"actor _ id ( int ) Actor affected by the command . angular _ velocity ( carla . Vector3D - deg / s ) The 3D angular velocity that will be applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_38","text":"__ init __ ( self , actor , angular _ velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . angular _ velocity ( carla . Vector3D - deg / s ) - Angular velocity vector applied to the actor .","title":"Methods"},{"location":"python_api/#commandapplytargetvelocity","text":"Command adaptation of set _ target _ velocity ( ) in carla . Actor .","title":"command . ApplyTargetVelocity"},{"location":"python_api/#instance-variables_44","text":"actor _ id ( int ) Actor affected by the command . velocity ( carla . Vector3D - m / s ) The 3D velocity applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_39","text":"__ init __ ( self , actor , velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . velocity ( carla . Vector3D - m / s ) - Velocity vector applied to the actor .","title":"Methods"},{"location":"python_api/#commandapplytorque","text":"Command adaptation of add _ torque ( ) in carla . Actor . Applies a torque to an actor .","title":"command . ApplyTorque"},{"location":"python_api/#instance-variables_45","text":"actor _ id ( int ) Actor affected by the command . torque ( carla . Vector3D - degrees ) Torque applied to the actor over time .","title":"Instance Variables"},{"location":"python_api/#methods_40","text":"__ init __ ( self , actor , torque ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . torque ( carla . Vector3D - degrees )","title":"Methods"},{"location":"python_api/#commandapplytransform","text":"Command adaptation of set _ transform ( ) in carla . Actor . Sets a new transform to an actor .","title":"command . ApplyTransform"},{"location":"python_api/#instance-variables_46","text":"actor _ id ( int ) Actor affected by the command . transform ( carla . Transform ) Transformation to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_41","text":"__ init __ ( self , actor , transform ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform )","title":"Methods"},{"location":"python_api/#commandapplyvehicleackermanncontrol","text":"Command adaptation of apply _ ackermann _ control ( ) in carla . Vehicle . Applies a certain akermann control to a vehicle .","title":"command . ApplyVehicleAckermannControl"},{"location":"python_api/#instance-variables_47","text":"actor _ id ( int ) Vehicle actor affected by the command . control ( carla . AckermannVehicleControl ) Vehicle ackermann control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_42","text":"__ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . AckermannVehicleControl )","title":"Methods"},{"location":"python_api/#commandapplyvehiclecontrol","text":"Command adaptation of apply _ control ( ) in carla . Vehicle . Applies a certain control to a vehicle .","title":"command . ApplyVehicleControl"},{"location":"python_api/#instance-variables_48","text":"actor _ id ( int ) Vehicle actor affected by the command . control ( carla . VehicleControl ) Vehicle control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_43","text":"__ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . VehicleControl )","title":"Methods"},{"location":"python_api/#commandapplyvehiclephysicscontrol","text":"Command adaptation of apply _ physics _ control ( ) in carla . Vehicle . Applies a new physics control to a vehicle , modifying its physical parameters .","title":"command . ApplyVehiclePhysicsControl"},{"location":"python_api/#instance-variables_49","text":"actor _ id ( int ) Vehicle actor affected by the command . physics _ control ( carla . VehiclePhysicsControl ) Physics control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_44","text":"__ init __ ( self , actor , physics _ control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . physics _ control ( carla . VehiclePhysicsControl )","title":"Methods"},{"location":"python_api/#commandapplywalkercontrol","text":"Command adaptation of apply _ control ( ) in carla . Walker . Applies a control to a walker .","title":"command . ApplyWalkerControl"},{"location":"python_api/#instance-variables_50","text":"actor _ id ( int ) Walker actor affected by the command . control ( carla . WalkerControl ) Walker control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_45","text":"__ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . WalkerControl )","title":"Methods"},{"location":"python_api/#commandapplywalkerstate","text":"Apply a state to the walker actor . Specially useful to initialize an actor them with a specific location , orientation and speed .","title":"command . ApplyWalkerState"},{"location":"python_api/#instance-variables_51","text":"actor _ id ( int ) Walker actor affected by the command . transform ( carla . Transform ) Transform to be applied . speed ( float - m / s ) Speed to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_46","text":"__ init __ ( self , actor , transform , speed ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform ) speed ( float - m / s )","title":"Methods"},{"location":"python_api/#commanddestroyactor","text":"Command adaptation of destroy ( ) in carla . Actor that tells the simulator to destroy this actor . It has no effect if the actor was already destroyed . When executed with apply _ batch _ sync ( ) in carla . Client there will be a command . Response that will return a boolean stating whether the actor was successfully destroyed .","title":"command . DestroyActor"},{"location":"python_api/#instance-variables_52","text":"actor _ id ( int ) Actor affected by the command .","title":"Instance Variables"},{"location":"python_api/#methods_47","text":"__ init __ ( self , actor ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to .","title":"Methods"},{"location":"python_api/#commandresponse","text":"States the result of executing a command as either the ID of the actor to whom the command was applied to ( when succeeded ) or an error string ( when failed ) . actor ID , depending on whether or not the command succeeded . The method apply _ batch _ sync ( ) in carla . Client returns a list of these to summarize the execution of a batch .","title":"command . Response"},{"location":"python_api/#instance-variables_53","text":"actor _ id ( int ) Actor to whom the command was applied to . States that the command was successful . error ( str ) A string stating the command has failed .","title":"Instance Variables"},{"location":"python_api/#methods_48","text":"has _ error ( self ) Returns True if the command execution fails , and False if it was successful . Return : bool","title":"Methods"},{"location":"python_api/#commandsetautopilot","text":"Command adaptation of set _ autopilot ( ) in carla . Vehicle . Turns on / off the vehicle ' s autopilot mode .","title":"command . SetAutopilot"},{"location":"python_api/#instance-variables_54","text":"actor _ id ( int ) Actor that is affected by the command . enabled ( bool ) If autopilot should be activated or not . port ( uint16 ) Port of the Traffic Manager where the vehicle is to be registered or unlisted .","title":"Instance Variables"},{"location":"python_api/#methods_49","text":"__ init __ ( self , actor , enabled , port = 8000 ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool ) port ( uint16 ) - The Traffic Manager port where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 .","title":"Methods"},{"location":"python_api/#commandsetenablegravity","text":"Command adaptation of set _ enable _ gravity ( ) in carla . Actor . Enables or disables gravity on an actor .","title":"command . SetEnableGravity"},{"location":"python_api/#instance-variables_55","text":"actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool )","title":"Instance Variables"},{"location":"python_api/#methods_50","text":"__ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool )","title":"Methods"},{"location":"python_api/#commandsetsimulatephysics","text":"Command adaptation of set _ simulate _ physics ( ) in carla . Actor . Determines whether an actor will be affected by physics or not .","title":"command . SetSimulatePhysics"},{"location":"python_api/#instance-variables_56","text":"actor _ id ( int ) Actor affected by the command . enabled ( bool ) If physics should be activated or not .","title":"Instance Variables"},{"location":"python_api/#methods_51","text":"__ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool )","title":"Methods"},{"location":"python_api/#commandsetvehiclelightstate","text":"Command adaptation of set _ light _ state ( ) in carla . Vehicle . Sets the light state of a vehicle .","title":"command . SetVehicleLightState"},{"location":"python_api/#instance-variables_57","text":"actor _ id ( int ) Actor that is affected by the command . light _ state ( carla . VehicleLightState ) Defines the light state of a vehicle .","title":"Instance Variables"},{"location":"python_api/#methods_52","text":"__ init __ ( self , actor , light _ state ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . light _ state ( carla . VehicleLightState ) - Recaps the state of the lights of a vehicle , these can be used as a flags .","title":"Methods"},{"location":"python_api/#commandshowdebugtelemetry","text":"Command adaptation of show _ debug _ telemetry ( ) in carla . Actor . Displays vehicle control telemetry data .","title":"command . ShowDebugTelemetry"},{"location":"python_api/#instance-variables_58","text":"actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool )","title":"Instance Variables"},{"location":"python_api/#methods_53","text":"__ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool )","title":"Methods"},{"location":"python_api/#commandspawnactor","text":"Command adaptation of spawn _ actor ( ) in carla . World . Spawns an actor into the world based on the blueprint provided and the transform . If a parent is provided , the actor is attached to it .","title":"command . SpawnActor"},{"location":"python_api/#instance-variables_59","text":"transform ( carla . Transform ) Transform to be applied . parent _ id ( int ) Identificator of the parent actor .","title":"Instance Variables"},{"location":"python_api/#methods_54","text":"__ init __ ( self ) __ init __ ( self , blueprint , transform ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) Links another command to be executed right after . It allows to ease very common flows such as spawning a set of vehicles by command and then using this method to set them to autopilot automatically . Parameters : command ( any carla Command ) - a Carla command . 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 ; } Snippet for carla . World . enable _ environment _ objects # This recipe turn visibility off and on for two specifc buildings on the map # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # Access individual building IDs and save in a set building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # Toggle buildings off world . enable _ environment _ objects ( objects _ to _ toggle , False ) # Toggle buildings on world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ string # This recipe is a modification of lane _ explorer . py example . # It draws the path of an actor through the world , printing information at each waypoint . # ... 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 ) # Check if the vehicle is moving 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 ) # Update the current waypoint and sleep for some time current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # This recipe toggles off several layers in our \" _ Opt \" maps # Load town one with minimum layout ( roads , sidewalks , traffic lights and traffic signs ) # as well as buildings and parked vehicles world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # Toggle all buildings off world . unload _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all parked vehicles off world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # Sets the appearance of the vehicles front wheels to 40 \u00b0 . Vehicle physics will not be affected . 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 __ # This recipe shows in every script provided in PythonAPI / Examples # and it is used to parse the client creation arguments when running the script . 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 Snippet for carla . Map . get _ waypoint # This recipe shows the current traffic rules affecting the vehicle . # Shows the current lane type and if a lane change can be done in the actual lane or the surrounding ones . # ... 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 # This recipe attaches different camera / sensors to a vehicle with different attachments . # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # Default attachment : 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 Snippet for carla . WalkerAIController . stop # 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":"Methods"},{"location":"ref_cpp/","text":"C++ \u53c2\u8003 \u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002 \u521b\u5efa doxygen \u6587\u6863 \u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#c","text":"\u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#doxygen","text":"\u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"\u521b\u5efa doxygen \u6587\u6863"},{"location":"ref_recorder_binary_file_format/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36 2 - \u4fe1\u606f \u5934 \u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a 3 - \u6570\u636e \u6570\u636e\u5305 \u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002 \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002 \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 4 - \u5e27 \u5e03\u5c40 \u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002 5 - \u6587\u4ef6 \u5e03\u5c40 \u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#_1","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#1-","text":"\u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36","title":"1 - \u4e8c\u8fdb\u5236 \u5b57\u7b26\u4e32"},{"location":"ref_recorder_binary_file_format/#2-","text":"\u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a","title":"2 - \u4fe1\u606f \u5934"},{"location":"ref_recorder_binary_file_format/#3-","text":"\u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002","title":"3 - \u6570\u636e\u5305"},{"location":"ref_recorder_binary_file_format/#0-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb"},{"location":"ref_recorder_binary_file_format/#1-_1","text":"\u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002","title":"\u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f"},{"location":"ref_recorder_binary_file_format/#2-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot","title":"\u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0"},{"location":"ref_recorder_binary_file_format/#3-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002","title":"\u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664"},{"location":"ref_recorder_binary_file_format/#4-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7"},{"location":"ref_recorder_binary_file_format/#5-","text":"\u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002","title":"\u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e"},{"location":"ref_recorder_binary_file_format/#6-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u6570\u636e\u5305 6 - \u4f4d\u7f6e"},{"location":"ref_recorder_binary_file_format/#7-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 7 - \u4ea4\u901a\u706f"},{"location":"ref_recorder_binary_file_format/#8-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002","title":"\u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#9-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002","title":"\u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#4-_1","text":"\u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002","title":"4 - \u5e27 \u5e03\u5c40"},{"location":"ref_recorder_binary_file_format/#5-_1","text":"\u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"5 - \u6587\u4ef6 \u5e03\u5c40"},{"location":"ref_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002 \u6df1\u5ea6 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth ) \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u7684 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002 RGB \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027 \u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics ) carla . RssSensor \u7c7b \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002 \u8f93\u51fa \u5c5e\u6027 carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 DVS \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002 DVS \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B . \u5149\u6d41 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002 \u5149\u6d41 \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_1","text":"\u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_2","text":"\u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002","title":"\u78b0\u649e \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_3","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_4","text":"\u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth )","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ref_sensors/#_5","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_6","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_8","text":"\u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f\u5668"},{"location":"ref_sensors/#_9","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027"},{"location":"ref_sensors/#_10","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_11","text":"\u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u7684 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f\u5668"},{"location":"ref_sensors/#_12","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027"},{"location":"ref_sensors/#_13","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_14","text":"\u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002","title":"\u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_15","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_16","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_17","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_18","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_19","text":"\u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u969c\u788d\u7269 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_20","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_21","text":"\u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_22","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#rgb","text":"\u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002","title":"RGB \u76f8\u673a"},{"location":"ref_sensors/#_23","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_24","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_25","text":"\u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002","title":"\u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_26","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_27","text":"\u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics )","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f\u5668"},{"location":"ref_sensors/#carlarsssensor","text":"\u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002","title":"carla . RssSensor \u7c7b"},{"location":"ref_sensors/#_28","text":"carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_29","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_30","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_31","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_32","text":"\u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ref_sensors/#_33","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_34","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_35","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#dvs","text":"\u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002","title":"DVS \u76f8\u673a"},{"location":"ref_sensors/#dvs_1","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B .","title":"DVS \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_36","text":"\u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002","title":"\u5149\u6d41 \u76f8\u673a"},{"location":"ref_sensors/#_37","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5149\u6d41 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_38","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_39","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"release_readme/","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org / \u5982\u4f55 \u8fd0\u884c Carla \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla","text":"\u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org /","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla_1","text":"\u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"\u5982\u4f55 \u8fd0\u884c Carla"},{"location":"ros_compatibility/","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002 ROS \u53c2\u6570 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode \u670d\u52a1 \u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros_1","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode","title":"ROS \u53c2\u6570"},{"location":"ros_compatibility/#_1","text":"\u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"\u670d\u52a1"},{"location":"ros_documentation/","text":"ROS \u6865 ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 \u5f00\u59cb \u4f7f\u7528 \u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865 \u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305 Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3 \u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305 Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u63a2\u7d22 \u53c2\u8003 \u8d44\u6599 \u53c2\u8003\u8d44\u6599 ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"ROS"},{"location":"ros_documentation/#ros","text":"ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002","title":"ROS \u6865"},{"location":"ros_documentation/#_1","text":"\u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865","title":"\u5f00\u59cb \u4f7f\u7528"},{"location":"ros_documentation/#ros_1","text":"Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3","title":"\u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#ros_2","text":"Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe","title":"\u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#_2","text":"ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"\u63a2\u7d22 \u53c2\u8003\u8d44\u6599"},{"location":"ros_index/","text":"ROS Bridge Documentation This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . Get started Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2 Learn about the main ROS bridge package CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions Learn about the additional ROS bridge packages CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations Explore the reference material ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"ROS Bridge Documentation"},{"location":"ros_index/#ros-bridge-documentation","text":"This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS Bridge Documentation"},{"location":"ros_index/#get-started","text":"Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2","title":"Get started"},{"location":"ros_index/#learn-about-the-main-ros-bridge-package","text":"CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions","title":"Learn about the main ROS bridge package"},{"location":"ros_index/#learn-about-the-additional-ros-bridge-packages","text":"CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations","title":"Learn about the additional ROS bridge packages"},{"location":"ros_index/#explore-the-reference-material","text":"ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"Explore the reference material"},{"location":"ros_installation_ros1/","text":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002 ROS \u6865 \u5b89\u88c5 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 \u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make \u8fd0\u884c ROS \u6865 1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 \u6d4b\u8bd5 \u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#ros-1-ros","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#_1","text":"\u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"ros_installation_ros1/#ros","text":"\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002","title":"ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros1/#a-debian","text":"\u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002","title":"A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#b","text":"1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make","title":"B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#ros_1","text":"1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"\u8fd0\u884c ROS \u6865"},{"location":"ros_installation_ros1/#_2","text":"\u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"\u6d4b\u8bd5"},{"location":"ros_installation_ros2/","text":"ROS bridge installation for ROS 2 This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems . Before you begin You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible . ROS bridge installation Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build Run the ROS bridge 1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 Testing To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#ros-bridge-installation-for-ros-2","text":"This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems .","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#before-you-begin","text":"You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible .","title":"Before you begin"},{"location":"ros_installation_ros2/#ros-bridge-installation","text":"Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build","title":"ROS bridge installation"},{"location":"ros_installation_ros2/#run-the-ros-bridge","text":"1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"Run the ROS bridge"},{"location":"ros_installation_ros2/#testing","text":"To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"Testing"},{"location":"ros_msgs/","text":"Carla \u6d88\u606f \u53c2\u8003 \u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b CarlaActorInfo . msg ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002 CarlaActorList . msg \u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 CarlaCollisionEvent . msg \u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002 CarlaControl . msg \u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2 CarlaEgoVehicleControl . msg \u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002 CarlaEgoVehicleInfo . msg \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 CarlaEgoVehicleInfoWheel . msg \u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 CarlaEgoVehicleStatus . msg \u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002 CarlaLaneInvasionEvent . msg \u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2 CarlaScenario . msg \u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002 CarlaScenarioList . msg \u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002 CarlaScenarioRunnerStatus . msg ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4 CarlaStatus . msg \u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaTrafficLightStatus . msg \u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4 CarlaTrafficLightStatusList . msg \u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002 CarlaWalkerControl . msg \u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002 CarlaWaypoint . msg \u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaWorldInfo . msg \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002 EgoVehicleControlCurrent . msg \u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 EgoVehicleControlInfo . msg \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 EgoVehicleControlMaxima . msg \u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002 EgoVehicleControlStatus . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 EgoVehicleControlTarget . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carla","text":"\u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carlaactorinfomsg","text":"ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002","title":"CarlaActorInfo . msg"},{"location":"ros_msgs/#carlaactorlistmsg","text":"\u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaActorList . msg"},{"location":"ros_msgs/#carlacollisioneventmsg","text":"\u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002","title":"CarlaCollisionEvent . msg"},{"location":"ros_msgs/#carlacontrolmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2","title":"CarlaControl . msg"},{"location":"ros_msgs/#carlaegovehiclecontrolmsg","text":"\u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002","title":"CarlaEgoVehicleControl . msg"},{"location":"ros_msgs/#carlaegovehicleinfomsg","text":"\u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002","title":"CarlaEgoVehicleInfo . msg"},{"location":"ros_msgs/#carlaegovehicleinfowheelmsg","text":"\u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002","title":"CarlaEgoVehicleInfoWheel . msg"},{"location":"ros_msgs/#carlaegovehiclestatusmsg","text":"\u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002","title":"CarlaEgoVehicleStatus . msg"},{"location":"ros_msgs/#carlalaneinvasioneventmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2","title":"CarlaLaneInvasionEvent . msg"},{"location":"ros_msgs/#carlascenariomsg","text":"\u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002","title":"CarlaScenario . msg"},{"location":"ros_msgs/#carlascenariolistmsg","text":"\u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002","title":"CarlaScenarioList . msg"},{"location":"ros_msgs/#carlascenariorunnerstatusmsg","text":"ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4","title":"CarlaScenarioRunnerStatus . msg"},{"location":"ros_msgs/#carlastatusmsg","text":"\u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatusmsg","text":"\u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4","title":"CarlaTrafficLightStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatuslistmsg","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaTrafficLightStatusList . msg"},{"location":"ros_msgs/#carlawalkercontrolmsg","text":"\u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002","title":"CarlaWalkerControl . msg"},{"location":"ros_msgs/#carlawaypointmsg","text":"\u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaWaypoint . msg"},{"location":"ros_msgs/#carlaworldinfomsg","text":"\u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002","title":"CarlaWorldInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolcurrentmsg","text":"\u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002","title":"EgoVehicleControlCurrent . msg"},{"location":"ros_msgs/#egovehiclecontrolinfomsg","text":"\u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002","title":"EgoVehicleControlInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolmaximamsg","text":"\u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002","title":"EgoVehicleControlMaxima . msg"},{"location":"ros_msgs/#egovehiclecontrolstatusmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002","title":"EgoVehicleControlStatus . msg"},{"location":"ros_msgs/#egovehiclecontroltargetmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"EgoVehicleControlTarget . msg"},{"location":"ros_sensors/","text":"ROS \u6865 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6df1\u5ea6 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo DVS \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 TF \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002 \u8f66\u901f \u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002 \u5730\u56fe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002 \u76ee\u6807 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002 \u6807\u8bb0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4ea4\u901a \u4ea4\u901a\u706f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#ros","text":"","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_1","text":"","title":"\u53ef\u7528 \u4f20\u611f\u5668"},{"location":"ros_sensors/#rgb","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"RGB \u76f8\u673a"},{"location":"ros_sensors/#_2","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ros_sensors/#_3","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ros_sensors/#dvs","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"DVS \u76f8\u673a"},{"location":"ros_sensors/#_4","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_5","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_6","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u96f7\u8fbe"},{"location":"ros_sensors/#_7","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143"},{"location":"ros_sensors/#_8","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf"},{"location":"ros_sensors/#_9","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent","title":"\u78b0\u649e \u4f20\u611f\u5668"},{"location":"ros_sensors/#_10","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u8f66\u9053 \u5165\u4fb5 \u4f20\u611f\u5668"},{"location":"ros_sensors/#tf","text":"\u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002","title":"TF \u4f20\u611f\u5668"},{"location":"ros_sensors/#_11","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002","title":"\u91cc\u7a0b\u8ba1 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_12","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002","title":"\u8f66\u901f \u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_13","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002","title":"\u5730\u56fe \u4f20\u611f\u5668"},{"location":"ros_sensors/#_14","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002","title":"\u76ee\u6807 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_15","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316","title":"\u6807\u8bb0 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_16","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002","title":"\u4ea4\u901a\u706f \u4f20\u611f\u5668"},{"location":"ros_sensors/#_17","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_18","text":"\u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"\u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f\u5668"},{"location":"rqt_plugin/","text":"RQT Carla \u63d2\u4ef6 RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"rqt_plugin/#rqt-carla","text":"RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"run_ros/","text":"ROS \u6865\u5305 carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u8bbe\u7f6e ROS \u73af\u5883 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a \u51c6\u5907 ROS 1 \u73af\u5883 \uff1a \u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u51c6\u5907 ROS 2 \u73af\u5883 \uff1a source . / install / setup . bash \u8fd0\u884c ROS \u6865 \u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002 \u914d\u7f6e Carla \u8bbe\u7f6e \u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002 \u670d\u52a1 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros","text":"carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros_1","text":"ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a","title":"\u8bbe\u7f6e ROS \u73af\u5883"},{"location":"run_ros/#ros-1","text":"\u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash","title":"\u51c6\u5907 ROS 1 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros-2","text":"source . / install / setup . bash","title":"\u51c6\u5907 ROS 2 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros_2","text":"\u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002","title":"\u8fd0\u884c ROS \u6865"},{"location":"run_ros/#carla","text":"\u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002","title":"\u914d\u7f6e Carla \u8bbe\u7f6e"},{"location":"run_ros/#ros_3","text":"ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control","title":"\u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS"},{"location":"run_ros/#_1","text":"\u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002","title":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236"},{"location":"run_ros/#ros_4","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"run_ros/#_2","text":"\u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002","title":"\u8ba2\u9605"},{"location":"run_ros/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002","title":"\u53d1\u5e03"},{"location":"run_ros/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"\u670d\u52a1"},{"location":"rviz_plugin/","text":"RVIZ Carla \u63d2\u4ef6 RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd \u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09 \u53d1\u5e03 Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4 \u670d\u52a1 Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-carla","text":"RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-ros","text":"RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py","title":"\u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865"},{"location":"rviz_plugin/#rviz","text":"\u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002","title":"RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd"},{"location":"rviz_plugin/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"rviz_plugin/#_1","text":"Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09","title":"\u8ba2\u9605"},{"location":"rviz_plugin/#_2","text":"Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4","title":"\u53d1\u5e03"},{"location":"rviz_plugin/#_3","text":"Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"\u670d\u52a1"},{"location":"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\u7b49 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002 \u8be5 \u9879\u76ee Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u4ecb\u7ecd"},{"location":"start_introduction/#carla","text":"\u91cd\u8981 \u672c \u6587\u6863 \u53c2\u8003 \u6700\u65b0 \u7248\u672c \u7684 Carla \u3002 \u6709\u5173 \u4ee5\u524d \u7248\u672c \u7684 \u6587\u6863 \uff0c \u8bf7 \u5728 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u770b\u5230 \u6b64 \u6309\u94ae \u7684 \u4f4d\u7f6e \u9009\u62e9 \u6240 \u9700 \u7684 \u7248\u672c \uff1a Carla \u662f \u4e00\u6b3e \u5f00\u6e90 \u81ea\u52a8 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5b83 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u7684 \uff0c \u4f5c\u4e3a \u4e00\u4e2a \u6a21\u5757 \u6a21\u5757\u5316 \u4e14 \u7075\u6d3b \u7684 API \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u81ea\u52a8 \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u6d89\u53ca \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4efb\u52a1 \u3002 Carla \u7684 \u4e3b\u8981 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5e2e\u52a9 \u81ea\u52a8 \u9a7e\u9a76 \u7814\u53d1 \u6c11\u4e3b \u6c11\u4e3b\u5316 \uff0c \u6210\u4e3a \u7528\u6237 \u53ef\u4ee5 \u8f7b\u677e \u8bbf\u95ee \u548c \u5b9a\u5236 \u7684 \u5de5\u5177 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u822c \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u4e0d\u540c \u7528\u4f8b \u7684 \u8981\u6c42 \uff08 \u4f8b\u5982 \u5b66\u4e60 \u9a7e\u9a76 \u7b56\u7565 \u3001 \u8bad\u7ec3 \u611f\u77e5 \u7b97\u6cd5 \u7b49 \uff09 \u3002 Carla \u57fa\u4e8e \u865a\u5e7b \u5f15\u64ce \u6765 \u8fd0\u884c \u4eff\u771f \uff0c \u5e76 \u4f7f\u7528 OpenDRIVE \u6807\u51c6 \uff08 \u76ee\u524d \u4e3a 1.4 \uff09 \u6765 \u5b9a\u4e49 \u9053\u8def \u548c \u57ce\u5e02 \u8bbe\u7f6e \u3002 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 Python \u548c C++ \u5904\u7406 \u7684 API \u6388\u4e88 \u7684 \uff0c \u8be5 API \u968f\u7740 \u9879\u76ee \u7684 \u53d1\u5c55 \u800c \u4e0d\u65ad \u589e\u957f \u3002 \u4e3a\u4e86 \u987a\u5229 \u5f00\u53d1 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u8fc7\u7a0b \uff0c Carla \u53d1\u5c55 \u6210\u4e3a \u4e00\u4e2a \u7531 \u793e\u533a \u56f4\u7ed5 \u4e3b \u5e73\u53f0 \u6784\u5efa \u7684 \u9879\u76ee \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u975e\u5e38 \u91cd\u8981 \uff0c \u8fd9\u6837 \u624d\u80fd \u5145\u5206 \u7406\u89e3 \u5176 \u529f\u80fd \u3002","title":"Carla"},{"location":"start_introduction/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7531 \u53ef \u6269\u5c55 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u7ec4\u6210 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8d1f\u8d23 \u4e0e \u4eff\u771f \u672c\u8eab \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \u3001 \u7269\u7406 \u8ba1\u7b97 \u3001 \u4e16\u754c \u72b6\u6001 \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u66f4\u65b0 \u7b49\u7b49 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002","title":"\u4eff\u771f\u5668"},{"location":"start_introduction/#_2","text":"Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u8be5 \u9879\u76ee"},{"location":"start_quickstart/","text":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a Windows pip3 install -- user pygame numpy Linux pip install -- user pygame numpy && pip3 install -- user pygame numpy Carla \u5b89\u88c5 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 A . Debian Carla \u5b89\u88c5 Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 B . \u5305 \u5b89\u88c5 Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002 Carla 0.9 . 12 + \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd0\u884c Carla \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options \u66f4\u65b0 Carla \u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla \u8ddf\u8fdb \u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_2","text":"\u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"start_quickstart/#windows","text":"pip3 install -- user pygame numpy","title":"Windows"},{"location":"start_quickstart/#linux","text":"pip install -- user pygame numpy && pip3 install -- user pygame numpy","title":"Linux"},{"location":"start_quickstart/#carla","text":"\u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002","title":"Carla \u5b89\u88c5"},{"location":"start_quickstart/#a-debian-carla","text":"Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"A . Debian Carla \u5b89\u88c5"},{"location":"start_quickstart/#b","text":"Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002","title":"B . \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_3","text":"\u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002","title":"\u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7"},{"location":"start_quickstart/#_4","text":"","title":"\u5b89\u88c5 \u5ba2\u6237\u7aef \u5e93"},{"location":"start_quickstart/#0912-carla","text":"\u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002","title":"0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c"},{"location":"start_quickstart/#carla-0912","text":"\u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002","title":"Carla 0.9 . 12 +"},{"location":"start_quickstart/#carla_1","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py","title":"\u8fd0\u884c Carla"},{"location":"start_quickstart/#_5","text":"\u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options","title":"\u547d\u4ee4\u884c \u9009\u9879"},{"location":"start_quickstart/#carla_2","text":"\u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u66f4\u65b0 Carla"},{"location":"start_quickstart/#_6","text":"\u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u8ddf\u8fdb"},{"location":"todo/","text":"\u5f85 \u505a \u6280\u672f \u6587\u6863 \u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u4e66\u7c4d \uff1b \u5b66\u672f \u7814\u7a76 \u5b66\u672f\u7814\u7a76 \u611f\u77e5 \u76ee\u6807 \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002 \u89c4\u5212 \u5b9a\u4f4d \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u63a7\u5236 PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u573a\u666f \u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002 \u827a\u672f \u6539\u8fdb \u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b \u865a\u5e7b \u5f15\u64ce \u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002","title":"\u5f85 \u505a \u5217\u8868"},{"location":"todo/#_1","text":"","title":"\u5f85 \u505a"},{"location":"todo/#_2","text":"\u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u4e66\u7c4d \uff1b","title":"\u6280\u672f \u6587\u6863"},{"location":"todo/#_3","text":"","title":"\u5b66\u672f\u7814\u7a76"},{"location":"todo/#_4","text":"\u76ee\u6807 \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002","title":"\u611f\u77e5"},{"location":"todo/#_5","text":"\u5b9a\u4f4d \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002","title":"\u89c4\u5212"},{"location":"todo/#_6","text":"PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002","title":"\u63a7\u5236"},{"location":"todo/#_7","text":"\u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002","title":"\u573a\u666f"},{"location":"todo/#_8","text":"\u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b","title":"\u827a\u672f \u6539\u8fdb"},{"location":"todo/#_9","text":"\u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"todo_list/","text":"\u8ba1\u5212 VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c \u53d1\u5e03 \u6267\u884c \u884c\u7a0b \u7a0b\u5e8f \u53ef\u6267\u884c\u7a0b\u5e8f make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u8ba1\u5212"},{"location":"todo_list/#_1","text":"VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c","title":"\u8ba1\u5212"},{"location":"todo_list/#_2","text":"make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u53d1\u5e03 \u53ef\u6267\u884c\u7a0b\u5e8f"},{"location":"ts_traffic_simulation_overview/","text":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner Scenic Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b SUMO SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a"},{"location":"ts_traffic_simulation_overview/#carla","text":"\u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO","title":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f"},{"location":"ts_traffic_simulation_overview/#_1","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"ts_traffic_simulation_overview/#scenario-runner-openscenario","text":"Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner","title":"Scenario Runner \u548c OpenScenario"},{"location":"ts_traffic_simulation_overview/#scenic","text":"Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b","title":"Scenic"},{"location":"ts_traffic_simulation_overview/#sumo","text":"SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"SUMO"},{"location":"tuto_A_add_props/","text":"\u6dfb\u52a0 \u65b0 \u9053\u5177 \u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_1","text":"\u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_2","text":"","title":"\u51c6\u5907 \u5305"},{"location":"tuto_A_add_props/#_3","text":"1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx","title":"\u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_A_add_props/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002","title":"\u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_A_add_props/#carla","text":"\u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002","title":"\u5bfc\u5165\u5230 Carla \u5305\u4e2d"},{"location":"tuto_A_add_props/#_4","text":"\u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165"},{"location":"tuto_A_add_vehicle/","text":"\u6dfb\u52a0 \u65b0\u8f66 \u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 Inside the new vehicle folder , import your main vehicle skeleton . fbx by right - clicking in the Content Browser and selecting Import into Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > . In the dialogue box that pops up : Set Import Content Type to Geometry and Skinning Weights . Set Normal Import Method to Import Normals . Optionally set Material Import Method to Do not create materials . Uncheck Import Textures to avoid Unreal Engine creating default materials . The Skeletal Mesh will appear along with two new files , < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton . Import the rest of your . fbx files separately from the main vehicle skeleton . fbx file . 3 . Set the physical asset mesh . Open < vehicle _ name > _ PhysicsAssets from the Content Browser . Right - click on the Vehicle _ Base mesh in the Skeleton Tree panel and go to Copy Collision from StaticMesh . Search for and select your SMC _ < vehicle _ name > file . You should see the outline of the physical asset mesh appear in the viewport . Delete the default capsule shape from the Vehicle _ Base . Select all the wheels : Go to the Tools panel and change the Primitive Type to Sphere . Go to the Details panel and change Physics Type to Kinematic . Set Linear Damping to 0 . This will eliminate any extra friction on the wheels . Enable Simulation Generates Hit Event for all meshes . Click Re - generate Bodies . Adjust the wheel sphere to the size of the wheel . Save and close the window . 4 . Create the Animation Blueprint . In the Content Browser , right - click inside your vehicle folder and select Animation - > Animation Blueprint . In Parent Class search for and select VehicleAnimInstance . In Target Skeleton search for and select < vehicle _ name > _ Skeleton . Press OK and rename the blueprint as AnimBP _ < vehicle _ name > . 5 . Configure the Animation Blueprint . To ease the process of configuring the animation blueprint , we will copy an existing one from a native Carla vehicle : Go to Content / Carla / Static / Vehicle and choose any Carla vehicle folder . Open its Animation Blueprint . In the My Blueprint panel , double click on AnimGraph . You will see the graph come up in the viewport . Click and drag to select the Mesh Space Ref Pose , Wheel Handler , and Component To Local components . Right - click and select Copy . Go back to your own vehicle Animation Blueprint and paste the copied contents into the graph area . Click and drag from the standing figure in the Component To Local component to the figure in Output Pose to join the components together . Click Compile in the top left corner . You should now see a pulsating line flowing through the entire sequence . Save and close the window . 6 . Prepare the vehicle and wheel blueprints . In the Content Browser , go to Content / Carla / Blueprints / Vehicles and create a new folder < vehicle _ name > . Inside the folder , right - click and go to Blueprint Class . Open the All Classes section in the pop - up . Search for BaseVehiclePawn and press Select . Rename the file as BP _ < vehicle _ name > . Go to the folder of any of the native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . 7 . Configure the wheel blueprints . In your vehicle blueprint folder , open all four of the wheel blueprints . In the Class Defaults panel , set Collision Mesh to Wheel _ Shape . Omitting this step will cause the vehicle wheels to sink into the ground . Adjust the values for wheel shape radius , width , mass , and damping rate according to your vehicle specifications . Set Tire Config to CommonTireConfig On the front wheels set Steer Angle according to your preferences ( default is 70 ) . Uncheck Affected by Handbrake . On the rear wheels set Steer Angle to 0 . Check Affected by Handbrake . When setting the suspension values , you can use the values here as a guide . Compile and save . 8 . Configure vehicle blueprint . From the Content Browser , open your BP _ < vehicle _ name > . In the Components panel , select Mesh ( VehicleMesh ) ( Inherited ) . In the Details panel , go to Skeletal Mesh and search for and select the base skeleton file of your vehicle ( located in the Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > folder ) . Go to Anim Class in the Details panel . Search for and select your AnimBP _ < vehicle _ name > file . In the Components panel , select Custom Collision ( Inherited ) . Select Static Mesh in the Details panel and search for your SM _ sc _ < vehicle _ name > raycast sensor mesh . In the Components panel , select VehicleMovement ( MovementComp ) ( Inherited ) . In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ < vehicle _ name > _ < wheel _ name > file that corresponds to the correct wheel position . If you have any additional meshes for your vehicle ( doors , lights , etc . , ) separate from the base mesh : Drag them into the Mesh ( VehicleMesh ) ( Inherited ) hierarchy in the Components panel . Select the extra meshes in the hierarchy and search for Collision in the Details panel . Set Collision Presets to NoCollision . Select any lights meshes in the hierarchy . Search for Tag in the Details panel and add the tag emissive . Click Save and Compile . 9 . Add the vehicle to the Blueprint Library . In Content / Carla / Blueprint / Vehicle , open the VehicleFactory file . In the Generate Definitions tab , double click Vehicles . In the Details panel , expand the Default Value section and add a new element to the vehicles array . Fill in the Make and Model of your vehicle . Fill in the Class value with your BP _ < vehicle _ name > file . Optionally , provide a set of recommended colors for the vehicle . Compile and save . 10 . Test the vehicle . Launch Carla , open a terminal in PythonAPI / examples and run the following command : python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 Note Even if you used upper case characters in your make and model , they need to be converted to lower case when passed to the filter . Add an N wheeled vehicle Adding an N wheeled vehicle follows the same import pipeline as that for 4 wheeled vehicles above with a few steps that are different . 5 . Configure the Animation Blueprint for an N wheeled vehicle Search for BaseVehiclePawnNW and press Select . 6 . Prepare the vehicle and wheel blueprints Go to the folder of any native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . Copy the four wheels and copy again for additional wheels . In the case of a 6 wheeled vehicle , you will need 6 different wheels : FLW , FRW , MLW , MRW , RLW , RRW . 7 . Configure the wheel blueprints Follow section 7 as above for the 4 wheeled vehicle . The key difference in the case of an N wheeled vehicle is those affected by handbrake and steering parameters . In some vehicles ( like for example a long wheelbase truck ) the front 2 pairs of wheels will steer , and one set may steer more than others . The rearmost pairs may be affected by handbrake , the specifics will depend upon the vehicle you are modelling . 8 . Configure vehicle blueprint In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ _ file that corresponds to the correct wheel position . This is correct , but just to specify , in the case of N wheeled vehicles , you need to set ALL the wheels . This is an example with a 6 wheeled vehicle : Finally , an additional consideration is setting the differential . In the case of a 4 wheeled vehicle , we have different presets of differentials ( Limited Slip , Open 4W etc . ) but with N wheeled vehicles , you need to choose on which wheels you want to apply torque . In this case , we have chosen only the middle and rear wheels have torque , while the front wheels don \u2019 t , you can specify other configurations . The numbers are going to be the same as the image above this text ( e . g . 0 will be the Front Left Wheel , as specified above ) . All other parameters such as engine , transmission , steering curve , are the same as 4 wheeled vehicles . Add a 2 wheeled vehicle Adding 2 wheeled vehicles is similar to adding a 4 wheeled one but due to the complexity of the animation you ' ll need to set up aditional bones to guide the driver ' s animation . Here is the link to the reference skeleton for 2 wheeled vehicles . As with the 4 wheeled vehicles , orient the model towards positive \" x \" and every bone axis towards positive x and with the z axis facing upwards . Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . Import fbx as Skelletal Mesh to its own folder inside Content / Carla / Static / Vehicles / 2Wheeled . When importing select \" General2WheeledVehicleSkeleton \" as skelleton A Physics asset should be automatically created and linked . 2 . Tune the Physics asset . Delete the automatically created ones and add boxes to the BikeBody bone trying to match the shape as possible , make sure generate hit events is enabled . Add a sphere for each wheel and set their \" Physics Type \" to \" Kinematic \" . 3 . Create folder Content / Blueprints / Vehicles / < vehicle - model > 4 . Inside that folder create two blueprint classes derived from \" VehicleWheel \" class . Call them < vehicle - model > _ FrontWheel and < vehicle - model > _ RearWheel . Set their \" Shape Radius \" to exactly match the mesh wheel radius ( careful , radius not diameter ) . Set their \" Tire Config \" to \" CommonTireConfig \" . On the front wheel uncheck \" Affected by Handbrake \" and on the rear wheel set \" Steer Angle \" to zero . 5 . Inside the same folder create a blueprint class derived from Base2WheeledVehicle call it < vehicle - model > . Open it for edit and select component \" Mesh \" , setup the \" Skeletal Mesh \" and the \" Anim Class \" to the corresponding ones . Then select the VehicleBounds component and set the size to cover vehicle ' s area as seen from above . 6 . Select component \" VehicleMovement \" , under \" Vehicle Setup \" expand \" Wheel Setups \" , setup each wheel . 0 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 1 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 2 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel 3 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel ( You ' ll notice that we are basically placing two wheels in each bone . The vehicle class unreal provides does not support vehicles with wheel numbers different from 4 so we had to make it believe the vehicle has 4 wheels ) 7 . Select the variable \" is bike \" and tick it if your model is a bike . This will activate the pedalier rotation . Leave unmarked if you are setting up a motorbike . 8 . Find the variable back Rotation and set it as it fit better select the component SkeletalMesh ( The driver ) and move it along x axis until its in the seat position . 9 . Test it , go to CarlaGameMode blueprint and change \" Default Pawn Class \" to the newly created bike blueprint .","title":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_1","text":"\u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6dfb\u52a0 \u65b0\u8f66"},{"location":"tuto_A_add_vehicle/#4","text":"\u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002","title":"\u6dfb\u52a0 4 \u8f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_2","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002","title":"\u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_3","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 Inside the new vehicle folder , import your main vehicle skeleton . fbx by right - clicking in the Content Browser and selecting Import into Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > . In the dialogue box that pops up : Set Import Content Type to Geometry and Skinning Weights . Set Normal Import Method to Import Normals . Optionally set Material Import Method to Do not create materials . Uncheck Import Textures to avoid Unreal Engine creating default materials . The Skeletal Mesh will appear along with two new files , < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton . Import the rest of your . fbx files separately from the main vehicle skeleton . fbx file . 3 . Set the physical asset mesh . Open < vehicle _ name > _ PhysicsAssets from the Content Browser . Right - click on the Vehicle _ Base mesh in the Skeleton Tree panel and go to Copy Collision from StaticMesh . Search for and select your SMC _ < vehicle _ name > file . You should see the outline of the physical asset mesh appear in the viewport . Delete the default capsule shape from the Vehicle _ Base . Select all the wheels : Go to the Tools panel and change the Primitive Type to Sphere . Go to the Details panel and change Physics Type to Kinematic . Set Linear Damping to 0 . This will eliminate any extra friction on the wheels . Enable Simulation Generates Hit Event for all meshes . Click Re - generate Bodies . Adjust the wheel sphere to the size of the wheel . Save and close the window . 4 . Create the Animation Blueprint . In the Content Browser , right - click inside your vehicle folder and select Animation - > Animation Blueprint . In Parent Class search for and select VehicleAnimInstance . In Target Skeleton search for and select < vehicle _ name > _ Skeleton . Press OK and rename the blueprint as AnimBP _ < vehicle _ name > . 5 . Configure the Animation Blueprint . To ease the process of configuring the animation blueprint , we will copy an existing one from a native Carla vehicle : Go to Content / Carla / Static / Vehicle and choose any Carla vehicle folder . Open its Animation Blueprint . In the My Blueprint panel , double click on AnimGraph . You will see the graph come up in the viewport . Click and drag to select the Mesh Space Ref Pose , Wheel Handler , and Component To Local components . Right - click and select Copy . Go back to your own vehicle Animation Blueprint and paste the copied contents into the graph area . Click and drag from the standing figure in the Component To Local component to the figure in Output Pose to join the components together . Click Compile in the top left corner . You should now see a pulsating line flowing through the entire sequence . Save and close the window . 6 . Prepare the vehicle and wheel blueprints . In the Content Browser , go to Content / Carla / Blueprints / Vehicles and create a new folder < vehicle _ name > . Inside the folder , right - click and go to Blueprint Class . Open the All Classes section in the pop - up . Search for BaseVehiclePawn and press Select . Rename the file as BP _ < vehicle _ name > . Go to the folder of any of the native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . 7 . Configure the wheel blueprints . In your vehicle blueprint folder , open all four of the wheel blueprints . In the Class Defaults panel , set Collision Mesh to Wheel _ Shape . Omitting this step will cause the vehicle wheels to sink into the ground . Adjust the values for wheel shape radius , width , mass , and damping rate according to your vehicle specifications . Set Tire Config to CommonTireConfig On the front wheels set Steer Angle according to your preferences ( default is 70 ) . Uncheck Affected by Handbrake . On the rear wheels set Steer Angle to 0 . Check Affected by Handbrake . When setting the suspension values , you can use the values here as a guide . Compile and save . 8 . Configure vehicle blueprint . From the Content Browser , open your BP _ < vehicle _ name > . In the Components panel , select Mesh ( VehicleMesh ) ( Inherited ) . In the Details panel , go to Skeletal Mesh and search for and select the base skeleton file of your vehicle ( located in the Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > folder ) . Go to Anim Class in the Details panel . Search for and select your AnimBP _ < vehicle _ name > file . In the Components panel , select Custom Collision ( Inherited ) . Select Static Mesh in the Details panel and search for your SM _ sc _ < vehicle _ name > raycast sensor mesh . In the Components panel , select VehicleMovement ( MovementComp ) ( Inherited ) . In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ < vehicle _ name > _ < wheel _ name > file that corresponds to the correct wheel position . If you have any additional meshes for your vehicle ( doors , lights , etc . , ) separate from the base mesh : Drag them into the Mesh ( VehicleMesh ) ( Inherited ) hierarchy in the Components panel . Select the extra meshes in the hierarchy and search for Collision in the Details panel . Set Collision Presets to NoCollision . Select any lights meshes in the hierarchy . Search for Tag in the Details panel and add the tag emissive . Click Save and Compile . 9 . Add the vehicle to the Blueprint Library . In Content / Carla / Blueprint / Vehicle , open the VehicleFactory file . In the Generate Definitions tab , double click Vehicles . In the Details panel , expand the Default Value section and add a new element to the vehicles array . Fill in the Make and Model of your vehicle . Fill in the Class value with your BP _ < vehicle _ name > file . Optionally , provide a set of recommended colors for the vehicle . Compile and save . 10 . Test the vehicle . Launch Carla , open a terminal in PythonAPI / examples and run the following command : python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 Note Even if you used upper case characters in your make and model , they need to be converted to lower case when passed to the filter .","title":"\u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#add-an-n-wheeled-vehicle","text":"Adding an N wheeled vehicle follows the same import pipeline as that for 4 wheeled vehicles above with a few steps that are different . 5 . Configure the Animation Blueprint for an N wheeled vehicle Search for BaseVehiclePawnNW and press Select . 6 . Prepare the vehicle and wheel blueprints Go to the folder of any native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . Copy the four wheels and copy again for additional wheels . In the case of a 6 wheeled vehicle , you will need 6 different wheels : FLW , FRW , MLW , MRW , RLW , RRW . 7 . Configure the wheel blueprints Follow section 7 as above for the 4 wheeled vehicle . The key difference in the case of an N wheeled vehicle is those affected by handbrake and steering parameters . In some vehicles ( like for example a long wheelbase truck ) the front 2 pairs of wheels will steer , and one set may steer more than others . The rearmost pairs may be affected by handbrake , the specifics will depend upon the vehicle you are modelling . 8 . Configure vehicle blueprint In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ _ file that corresponds to the correct wheel position . This is correct , but just to specify , in the case of N wheeled vehicles , you need to set ALL the wheels . This is an example with a 6 wheeled vehicle : Finally , an additional consideration is setting the differential . In the case of a 4 wheeled vehicle , we have different presets of differentials ( Limited Slip , Open 4W etc . ) but with N wheeled vehicles , you need to choose on which wheels you want to apply torque . In this case , we have chosen only the middle and rear wheels have torque , while the front wheels don \u2019 t , you can specify other configurations . The numbers are going to be the same as the image above this text ( e . g . 0 will be the Front Left Wheel , as specified above ) . All other parameters such as engine , transmission , steering curve , are the same as 4 wheeled vehicles .","title":"Add an N wheeled vehicle"},{"location":"tuto_A_add_vehicle/#add-a-2-wheeled-vehicle","text":"Adding 2 wheeled vehicles is similar to adding a 4 wheeled one but due to the complexity of the animation you ' ll need to set up aditional bones to guide the driver ' s animation . Here is the link to the reference skeleton for 2 wheeled vehicles . As with the 4 wheeled vehicles , orient the model towards positive \" x \" and every bone axis towards positive x and with the z axis facing upwards . Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . Import fbx as Skelletal Mesh to its own folder inside Content / Carla / Static / Vehicles / 2Wheeled . When importing select \" General2WheeledVehicleSkeleton \" as skelleton A Physics asset should be automatically created and linked . 2 . Tune the Physics asset . Delete the automatically created ones and add boxes to the BikeBody bone trying to match the shape as possible , make sure generate hit events is enabled . Add a sphere for each wheel and set their \" Physics Type \" to \" Kinematic \" . 3 . Create folder Content / Blueprints / Vehicles / < vehicle - model > 4 . Inside that folder create two blueprint classes derived from \" VehicleWheel \" class . Call them < vehicle - model > _ FrontWheel and < vehicle - model > _ RearWheel . Set their \" Shape Radius \" to exactly match the mesh wheel radius ( careful , radius not diameter ) . Set their \" Tire Config \" to \" CommonTireConfig \" . On the front wheel uncheck \" Affected by Handbrake \" and on the rear wheel set \" Steer Angle \" to zero . 5 . Inside the same folder create a blueprint class derived from Base2WheeledVehicle call it < vehicle - model > . Open it for edit and select component \" Mesh \" , setup the \" Skeletal Mesh \" and the \" Anim Class \" to the corresponding ones . Then select the VehicleBounds component and set the size to cover vehicle ' s area as seen from above . 6 . Select component \" VehicleMovement \" , under \" Vehicle Setup \" expand \" Wheel Setups \" , setup each wheel . 0 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 1 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 2 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel 3 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel ( You ' ll notice that we are basically placing two wheels in each bone . The vehicle class unreal provides does not support vehicles with wheel numbers different from 4 so we had to make it believe the vehicle has 4 wheels ) 7 . Select the variable \" is bike \" and tick it if your model is a bike . This will activate the pedalier rotation . Leave unmarked if you are setting up a motorbike . 8 . Find the variable back Rotation and set it as it fit better select the component SkeletalMesh ( The driver ) and move it along x axis until its in the seat position . 9 . Test it , go to CarlaGameMode blueprint and change \" Default Pawn Class \" to the newly created bike blueprint .","title":"Add a 2 wheeled vehicle"},{"location":"tuto_A_create_standalone/","text":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u72ec\u7acb \u5305"},{"location":"tuto_A_create_standalone/#_1","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305","title":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305"},{"location":"tuto_A_create_standalone/#carla","text":"\u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#docker","text":"\u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2","title":"\u4f7f\u7528 Docker \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#carla_1","text":"\u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305"},{"location":"tuto_A_material_customization/","text":"\u6750\u8d28 \u5b9a\u5236 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002 \u5916\u89c2 \u7279\u6027 \u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5efa\u7b51 \u6750\u8d28 \u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_1","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_2","text":"\u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002","title":"\u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_3","text":"\u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002","title":"\u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_4","text":"\u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u5916\u89c2 \u7279\u6027"},{"location":"tuto_A_material_customization/#_5","text":"\u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002","title":"\u5efa\u7b51 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_6","text":"\u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5b9a\u5236 \u5efa\u7b51\u6750\u6599"},{"location":"tuto_D_contribute_assets/","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_contribute_assets/#_1","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_create_semantic_tags/","text":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID \u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u . 5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_1","text":"\u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_2","text":"","title":"\u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#1-id","text":"\u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"1 . \u521b\u5efa \u6807\u7b7e ID"},{"location":"tuto_D_create_semantic_tags/#2","text":"\u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6\u5939"},{"location":"tuto_D_create_semantic_tags/#3","text":"3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002","title":"3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb"},{"location":"tuto_D_create_semantic_tags/#4","text":"\u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u .","title":"4 . \u5b9a\u4e49 \u989c\u8272\u4ee3\u7801"},{"location":"tuto_D_create_semantic_tags/#5","text":"\u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002","title":"5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c"},{"location":"tuto_D_create_semantic_tags/#carlacityobjectlabel","text":"\u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel"},{"location":"tuto_D_create_sensor/","text":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002 1 - \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 \u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild 5 - \u4f7f\u7528 \u793a\u4f8b \u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01 \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; } \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u521b\u5efa \u4e00\u4e2a \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_2","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_create_sensor/#_3","text":"Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002","title":"\u4ecb\u7ecd"},{"location":"tuto_D_create_sensor/#_4","text":"\u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#1-","text":"\u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002","title":"1 - \u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#2-","text":"\u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002","title":"2 - \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668"},{"location":"tuto_D_create_sensor/#3-","text":"\u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002","title":"3 - \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61"},{"location":"tuto_D_create_sensor/#4-","text":"\u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild","title":"4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#5-","text":"\u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01","title":"5 - \u4f7f\u7528 \u793a\u4f8b"},{"location":"tuto_D_create_sensor/#_5","text":"","title":"\u9644\u5f55"},{"location":"tuto_D_create_sensor/#_6","text":"\u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates","title":"\u91cd\u7528 \u7f13\u51b2\u533a"},{"location":"tuto_D_create_sensor/#_7","text":"\u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; }","title":"\u5f02\u6b65 \u53d1\u9001\u6570\u636e"},{"location":"tuto_D_create_sensor/#_8","text":"\u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u5ba2\u6237\u7aef \u4f20\u611f\u5668"},{"location":"tuto_D_customize_vehicle_suspension/","text":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002 \u60ac\u67b6 \u7ec4 \u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002 \u8f7f \u8dd1\u8f66 \u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3 \u8d8a\u91ce \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck \u5361\u8f66 \u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola \u57ce\u5e02 \u8f66 \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius \u8d27\u8f66 \u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66","title":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_2","text":"\u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002","title":"\u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840\u77e5\u8bc6"},{"location":"tuto_D_customize_vehicle_suspension/#_3","text":"\u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002","title":"\u60ac\u67b6 \u7ec4"},{"location":"tuto_D_customize_vehicle_suspension/#_4","text":"\u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3","title":"\u8f7f \u8dd1\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_5","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck","title":"\u8d8a\u91ce"},{"location":"tuto_D_customize_vehicle_suspension/#_6","text":"\u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola","title":"\u5361\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_7","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius","title":"\u57ce\u5e02 \u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_8","text":"\u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u8d27\u8f66"},{"location":"tuto_D_generate_colliders/","text":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53 \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 1 - \u5bfc\u51fa \u8f66\u8f86 FBX \u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002 \u7269\u7406 \u78b0\u649e \u4f53 \u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX \u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c \u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX \u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u8be6\u7ec6 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406","title":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_2","text":"","title":"\u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#1-fbx","text":"\u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"1 - \u5bfc\u51fa \u8f66\u8f86 FBX"},{"location":"tuto_D_generate_colliders/#2-","text":"2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002","title":"2 - \u751f\u6210 \u4f4e\u5bc6\u5ea6 \u7f51\u683c"},{"location":"tuto_D_generate_colliders/#3-","text":"3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002","title":"3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_D_generate_colliders/#4-","text":"4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002","title":"4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_3","text":"\u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002","title":"\u7269\u7406 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#0-","text":"\u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002","title":"0 - \u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_generate_colliders/#1-","text":"\u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002","title":"1 - \u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a\u4e49 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#2-fbx","text":"\u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX"},{"location":"tuto_D_generate_colliders/#3-4-blender","text":"\u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002","title":"3 \u5230 4 - \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a\u4e49 \u8fb9\u754c"},{"location":"tuto_D_generate_colliders/#5-blender-fbx","text":"\u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002","title":"5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX"},{"location":"tuto_D_generate_colliders/#6-8-","text":"\u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406"},{"location":"tuto_D_make_release/","text":"\u5982\u4f55 \u53d1\u5e03 \u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002","title":"\u53d1\u5e03 \u7248\u672c"},{"location":"tuto_D_make_release/#_1","text":"\u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002","title":"\u5982\u4f55 \u53d1\u5e03"},{"location":"tuto_D_windows_debug/","text":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \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 \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \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 \u6253\u5f00 Cmake \u5de5\u7a0b windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a 1 . \u5f00 Carla \u7684 CMake \u9879\u76ee \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 \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 \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 \u53d1\u5e03 \u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002","title":"\u8c03\u8bd5\u7a0b\u5e8f"},{"location":"tuto_D_windows_debug/#windows-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 \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \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","title":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#cmake","text":"windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a 1 . \u5f00 Carla \u7684 CMake \u9879\u76ee \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 \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 \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":"\u6253\u5f00 Cmake \u5de5\u7a0b"},{"location":"tuto_D_windows_debug/#_1","text":"\u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002","title":"\u53d1\u5e03"},{"location":"tuto_E_gallery/","text":"Carla \u6559\u7a0b ( Python API ) \u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py Gallery \u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"\u5165\u95e8"},{"location":"tuto_E_gallery/#carla-python-api","text":"\u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py","title":"Carla \u6559\u7a0b ( Python API )"},{"location":"tuto_E_gallery/#gallery","text":"\u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"Gallery"},{"location":"tuto_G_G29_windows/","text":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u9988 \u529b\u53cd\u9988 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u7f57\u6280 G29 \u65b9\u5411\u76d8"},{"location":"tuto_G_G29_windows/#carla-g29","text":"ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u7684 \u529b\u53cd\u9988"},{"location":"tuto_G_G29_windows/#_1","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"},{"location":"tuto_G_add_friction_triggers/","text":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002 \u4f8b\u5b50 import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_1","text":"\u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002","title":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_2","text":"import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u4f8b\u5b50"},{"location":"tuto_G_bounding_boxes/","text":"\u8fb9\u754c \u6846 \u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) \u51e0\u4f55 \u53d8\u6362 \u51e0\u4f55\u53d8\u6362 \u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov ) \u8fb9\u754c \u6846 Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u6e32\u67d3 \u8fb9\u754c \u6846 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002 \u8f66\u8f86 \u8fb9\u754c \u6846 \u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u5bfc\u51fa \u8fb9\u754c \u6846 \u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002 Pascal VOC \u683c\u5f0f \u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation > \u5fae\u8f6f COCO \u683c\u5f0f \u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_1","text":"\u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_2","text":"\u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_bounding_boxes/#_3","text":"\u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov )","title":"\u51e0\u4f55\u53d8\u6362"},{"location":"tuto_G_bounding_boxes/#_4","text":"Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ]","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002","title":"\u6e32\u67d3 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_6","text":"\u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u8f66\u8f86 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_7","text":"\u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u4e8c\u7ef4 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_8","text":"\u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002","title":"\u5bfc\u51fa \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#pascal-voc","text":"\u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation >","title":"Pascal VOC \u683c\u5f0f"},{"location":"tuto_G_bounding_boxes/#coco","text":"\u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u5fae\u8f6f COCO \u683c\u5f0f"},{"location":"tuto_G_carsim_integration/","text":"CarSim \u96c6\u6210 Carla \u4e0e CarSim \u7684 \u96c6\u6210 \u5141\u8bb8 \u5c06 Carla \u4e2d \u7684 \u8f66\u8f86 \u63a7\u5236 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u6240\u6709 \u5fc5\u9700 \u7684 \u7269\u7406 \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u65b0 \u72b6\u6001 \u8fd4\u56de \u7ed9 Carla \u3002 \u672c\u9875 \u5411 \u60a8 \u5c55\u793a \u5982\u4f55 \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u89e3\u91ca Carla \u548c CarSim \u4e4b\u95f4 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u5982\u4f55 \u5173\u8054 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 CarSim \u96c6\u6210 \u5728 Carla \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8bbe\u7f6e CarSim \u751f\u6210 . sim \u6587\u4ef6 \u5728 Windows \u4e0a \u5728 Ubuntu \u4e0a Vehicle sizes Run the simulation \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 : Get the plugin here . \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 Vehicle sizes Run the simulation","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 : Get the plugin here . \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 \" \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 Project Chrono \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # Spawn your vehicle vehicle = world . spawn _ actor ( bp , spawn _ point ) # Set the base path base _ path = \" / path / to / carla / Build / chrono - install / share / chrono / data / vehicle / \" # Set the template files vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # Enable Chrono physics 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 \"","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 Project Chrono \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # Spawn your vehicle vehicle = world . spawn _ actor ( bp , spawn _ point ) # Set the base path base _ path = \" / path / to / carla / Build / chrono - install / share / chrono / data / vehicle / \" # Set the template files vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # Enable Chrono physics vehicle . enable _ chrono _ physics ( 5000 , 0.002 , vehicle _ json , powertrain _ json , tire _ json , base _ path ) \u60a8 \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c manual _ control _ chrono . py \u5c1d\u8bd5 Chrono \u7269\u7406 \u96c6\u6210 \u3002 \u8fd0\u884c \u811a\u672c \u540e \uff0c \u6309 Ctrl + o \u542f\u7528 Chrono \u3002","title":"\u542f\u7528 Chrono \u7269\u7406"},{"location":"tuto_G_chrono/#_2","text":"\u6b64 \u96c6\u6210 \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u6062\u590d \u4e3a Carla \u9ed8\u8ba4 \u7269\u7406 \u72b6\u6001 \u3002","title":"\u5c40\u9650\u6027"},{"location":"tuto_G_control_vehicle_physics/","text":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( ) \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b"},{"location":"tuto_G_control_vehicle_physics/#_1","text":"\u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e","title":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027"},{"location":"tuto_G_control_vehicle_physics/#_2","text":"import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u8f66\u8f86 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b"},{"location":"tuto_G_control_vehicle_physics/#_3","text":"\u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e"},{"location":"tuto_G_control_walker_skeletons/","text":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u751f\u6210 \u884c\u4eba \u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point ) \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_1","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236"},{"location":"tuto_G_control_walker_skeletons/#_2","text":"\u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R","title":"\u884c\u4eba \u9aa8\u9abc \u7ed3\u6784"},{"location":"tuto_G_control_walker_skeletons/#_3","text":"\u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b","title":"\u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_4","text":"\u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_control_walker_skeletons/#_5","text":"\u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point )","title":"\u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_control_walker_skeletons/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_instance_segmentation_sensor/","text":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) \u793a\u4f8b \u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' ) \u56fe\u50cf \u8f93\u51fa \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_1","text":"\u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' )","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_2","text":"\u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' )","title":"\u793a\u4f8b"},{"location":"tuto_G_instance_segmentation_sensor/#_3","text":"\u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u56fe\u50cf \u8f93\u51fa"},{"location":"tuto_G_openstreetmap/","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002 \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a Linux # \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) Windows import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] ) \u5bfc\u5165 Carla \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002 B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap","text":"\u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#carla-openstreetmaps","text":"\u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps"},{"location":"tuto_G_openstreetmap/#openstreetmap-opendrive","text":"\u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a","title":"\u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f"},{"location":"tuto_G_openstreetmap/#linux","text":"# \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Linux"},{"location":"tuto_G_openstreetmap/#windows","text":"import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Windows"},{"location":"tuto_G_openstreetmap/#_1","text":"Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] )","title":"\u751f\u6210 \u4ea4\u901a\u706f"},{"location":"tuto_G_openstreetmap/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002","title":"\u5bfc\u5165 Carla"},{"location":"tuto_G_openstreetmap/#a","text":"\u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002","title":"A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c"},{"location":"tuto_G_openstreetmap/#b-xodr-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002","title":"B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_openstreetmap/#c-osm-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_pedestrian_bones/","text":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba \u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( ) AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u589e\u91cf ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002 \u76f8\u673a \u51e0\u4f55 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6784\u5efa \u9aa8\u67b6 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a \u603b\u7ed3 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#api","text":"\u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002","title":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#_1","text":"\u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_pedestrian_bones/#carla","text":"\u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( )","title":"\u5728 Carla \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_pedestrian_bones/#ai","text":"\u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u589e\u91cf ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002","title":"AI \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70"},{"location":"tuto_G_pedestrian_bones/#_2","text":"\u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K","title":"\u76f8\u673a \u51e0\u4f55"},{"location":"tuto_G_pedestrian_bones/#_3","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a","title":"\u6784\u5efa \u9aa8\u67b6"},{"location":"tuto_G_pedestrian_bones/#_4","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u603b\u7ed3"},{"location":"tuto_G_pedestrian_visual/","text":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce","title":"\u884c\u4eba \u89c6\u89c9"},{"location":"tuto_G_pedestrian_visual/#_1","text":"","title":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce"},{"location":"tuto_G_pygame/","text":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236 PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) \u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#pygame","text":"PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_pygame/#_2","text":"\u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) )","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_pygame/#pygame_1","text":"\u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"\u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c \u6982\u8ff0 \u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002 \u8bbe\u7f6e \u4eff\u771f \u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh \u5730\u56fe \u8bbe\u7f6e \u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2 \u5929\u6c14 \u8bbe\u7f6e \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8 \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 Carla \u4ea4\u901a \u548c \u884c\u4eba Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002 SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 RGB \u76f8\u673a RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002 \u6df1\u5ea6 \u76f8\u673a \u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right . \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002 \u975e \u6e32\u67d3 \u6a21\u5f0f \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002 \u5feb\u901f \u4eff\u771f \u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002 \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 \u505c\u6b62 \u8bb0\u5f55 \u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( ) \u5229\u7528 \u8bb0\u5f55 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py \u67e5\u8be2 \u4e8b\u4ef6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002 \u6539\u53d8 \u5929\u6c14 \u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002 \u6559\u7a0b \u811a\u672c \u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_2","text":"\u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002","title":"\u6982\u8ff0"},{"location":"tuto_G_retrieve_data/#_3","text":"\u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh","title":"\u8bbe\u7f6e \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_4","text":"\u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2","title":"\u5730\u56fe \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_5","text":"\u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8","title":"\u5929\u6c14 \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_6","text":"\u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002","title":"\u8bbe\u7f6e \u4ea4\u901a\u6d41\u91cf"},{"location":"tuto_G_retrieve_data/#carla","text":"Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002","title":"Carla \u4ea4\u901a \u548c \u884c\u4eba"},{"location":"tuto_G_retrieve_data/#sumo","text":"Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a"},{"location":"tuto_G_retrieve_data/#_7","text":"\u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002","title":"\u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_8","text":"\u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' )","title":"\u751f\u6210 \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_9","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) )","title":"\u653e\u7f6e \u89c2\u5bdf\u8005"},{"location":"tuto_G_retrieve_data/#_10","text":"\u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u8bbe\u7f6e \u57fa\u672c \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#rgb","text":"RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output","title":"RGB \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_11","text":"\u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors","title":"\u68c0\u6d4b\u5668"},{"location":"tuto_G_retrieve_data/#_12","text":"\u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output","title":"\u5176\u4ed6 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_13","text":"\u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002","title":"\u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_14","text":"\u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right .","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_15","text":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_16","text":"\u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_17","text":"\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_18","text":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002","title":"\u975e \u6e32\u67d3 \u6a21\u5f0f"},{"location":"tuto_G_retrieve_data/#_19","text":"\u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002","title":"\u5feb\u901f \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_20","text":"\u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236"},{"location":"tuto_G_retrieve_data/#_21","text":"","title":"\u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_22","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' )","title":"\u5f00\u59cb \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_23","text":"\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002","title":"\u6355\u83b7 \u5e76 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_24","text":"\u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( )","title":"\u505c\u6b62 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_25","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py","title":"\u5229\u7528 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_26","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002","title":"\u67e5\u8be2 \u4e8b\u4ef6"},{"location":"tuto_G_retrieve_data/#_27","text":"\u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002","title":"\u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5"},{"location":"tuto_G_retrieve_data/#_28","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002","title":"\u68c0\u7d22 \u66f4 \u591a \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_29","text":"\u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather )","title":"\u6539\u53d8 \u5929\u6c14"},{"location":"tuto_G_retrieve_data/#_30","text":"\u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002","title":"\u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c"},{"location":"tuto_G_retrieve_data/#_31","text":"\u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u6559\u7a0b \u811a\u672c"},{"location":"tuto_G_rllib_integration/","text":"RLlib \u96c6\u6210 RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784 \u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c 1 . \u5b9e\u9a8c \u7c7b \u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002 2 . \u73af\u5883 \u914d\u7f6e \u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002 3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002 DQN \u793a\u4f8b \u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002 \u5728 AWS \u4e0a \u8fd0\u884c \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002 \u914d\u7f6e AWS \u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa \u8bad\u7ec3 AMI \u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size > \u914d\u7f6e \u96c6\u7fa4 \u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u8fd0\u884c \u8bad\u7ec3 \u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file > \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#rllib","text":"RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#_1","text":"\u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_rllib_integration/#_2","text":"\u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla","title":"\u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#aws","text":"\u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#rllib_1","text":"\u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002","title":"RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784"},{"location":"tuto_G_rllib_integration/#_3","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c","title":"\u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c"},{"location":"tuto_G_rllib_integration/#1","text":"\u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002","title":"1 . \u5b9e\u9a8c \u7c7b"},{"location":"tuto_G_rllib_integration/#2","text":"\u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002","title":"2 . \u73af\u5883 \u914d\u7f6e"},{"location":"tuto_G_rllib_integration/#3","text":"\u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002","title":"3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c"},{"location":"tuto_G_rllib_integration/#dqn","text":"\u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002","title":"DQN \u793a\u4f8b"},{"location":"tuto_G_rllib_integration/#aws_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c"},{"location":"tuto_G_rllib_integration/#aws_2","text":"\u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u914d\u7f6e AWS"},{"location":"tuto_G_rllib_integration/#ami","text":"\u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size >","title":"\u521b\u5efa \u8bad\u7ec3 AMI"},{"location":"tuto_G_rllib_integration/#_4","text":"\u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002","title":"\u914d\u7f6e \u96c6\u7fa4"},{"location":"tuto_G_rllib_integration/#_5","text":"\u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file >","title":"\u8fd0\u884c \u8bad\u7ec3"},{"location":"tuto_G_rllib_integration/#aws-dqn","text":"\u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b"},{"location":"tuto_G_scenic/","text":"Scenic \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002 Scenic \u57df Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30 \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002 \u9644\u52a0 \u53c2\u6570 Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"Scenic"},{"location":"tuto_G_scenic/#scenic","text":"\u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570","title":"Scenic"},{"location":"tuto_G_scenic/#_1","text":"\u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_scenic/#scenic_1","text":"Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c","title":"Scenic \u57df"},{"location":"tuto_G_scenic/#carla-scenic","text":"\u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30","title":"\u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f"},{"location":"tuto_G_scenic/#_2","text":"\u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002","title":"\u8fd0\u884c \u573a\u666f"},{"location":"tuto_G_scenic/#_3","text":"Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"\u9644\u52a0 \u53c2\u6570"},{"location":"tuto_G_texture_streaming/","text":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406 Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002 \u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002 \u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406 \u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u66f4\u65b0 \u7eb9\u7406 \u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture ) \u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0 \u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api","text":"Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90"},{"location":"tuto_G_texture_streaming/#_2","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002","title":"\u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528"},{"location":"tuto_G_texture_streaming/#api_1","text":"\u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_3","text":"import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_texture_streaming/#_4","text":"\u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture )","title":"\u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api_2","text":"\u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0"},{"location":"tuto_G_traffic_light/","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206 \u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a \u4ea4\u901a\u706f \u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) 1 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location ) 2 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848 def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time 3 \u3001 \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002 4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) ) 4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848 def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"\u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528"},{"location":"tuto_G_traffic_light/#get_traffic_light","text":"","title":"\u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09"},{"location":"tuto_G_traffic_light/#carla","text":"\u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206","title":"\u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e"},{"location":"tuto_G_traffic_light/#python","text":"","title":"\u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a\u706f"},{"location":"tuto_G_traffic_light/#carla_1","text":"client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings )","title":"\u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5"},{"location":"tuto_G_traffic_light/#_1","text":"traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' )","title":"\u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff\u706f \u5bf9\u8c61"},{"location":"tuto_G_traffic_light/#1","text":"def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location )","title":"1 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f"},{"location":"tuto_G_traffic_light/#2","text":"def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time","title":"2 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#3","text":"def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002","title":"3 \u3001 \u4fee\u6539 \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#4","text":"","title":"4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#41","text":"def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) )","title":"4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41\u91cf"},{"location":"tuto_G_traffic_light/#42","text":"def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002 \u6307\u5b9a \u8f66\u8f86 \u884c\u9a76 \u8def\u7ebf \u884c\u9a76\u8def\u7ebf \u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_1","text":"\u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_2","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_3","text":"\u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_4","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_5","text":"\u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u6307\u5b9a \u8f66\u8f86 \u884c\u9a76\u8def\u7ebf"},{"location":"tuto_G_traffic_prediction/","text":"\u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_G_traffic_prediction/#_1","text":"\u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u4ea4\u901a\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_M_add_map_alternative/","text":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002 \u63d2\u4ef6 \u5b89\u88c5 1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002 \u5bfc\u5165 \u5730\u56fe 1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002 \u624b\u52a8 \u5bfc\u5165 \u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#roadrunner","text":"MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002","title":"RoadRunner \u63d2\u4ef6 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_2","text":"1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002","title":"\u63d2\u4ef6 \u5b89\u88c5"},{"location":"tuto_M_add_map_alternative/#_3","text":"1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002","title":"\u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_alternative/#_4","text":"\u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u624b\u52a8 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_5","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_add_map_package/","text":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002 Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"\u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165","title":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#_1","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_package/#carla_1","text":"1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002 \u5730\u56fe \u5bfc\u5165 1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#carla","text":"\u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#_1","text":"\u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_source/#_2","text":"1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002","title":"\u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/#_3","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_add_tl/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6807\u5fd7 \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_2","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u7ea2\u7eff\u706f"},{"location":"tuto_M_custom_add_tl/#_3","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u7ea2\u7eff\u706f \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_buildings/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002 \u5efa\u7b51 \u7ed3\u6784 \u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X and \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 \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \uff0c \u7b49\u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_2","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_3","text":"\u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X and \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 \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \uff0c \u7b49\u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002","title":"\u7ed3\u6784 \u4fee\u6539"},{"location":"tuto_M_custom_buildings/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_layers/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_1","text":"\u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_2","text":"\u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002","title":"\u6dfb\u52a0 \u65b0 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_3","text":"1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002","title":"\u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_4","text":"\u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002","title":"\u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879"},{"location":"tuto_M_custom_layers/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_map_overview/","text":"\u6dfb\u52a0 \u65b0 \u5730\u56fe Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6982\u8ff0 \u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002 \u751f\u6210 Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002 \u5bfc\u5165 \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a \u5b9a\u5236 \u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Carla \u4e2d \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_1","text":"Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u6dfb\u52a0 \u65b0 \u5730\u56fe"},{"location":"tuto_M_custom_map_overview/#_2","text":"\u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002","title":"\u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_3","text":"Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002","title":"\u751f\u6210"},{"location":"tuto_M_custom_map_overview/#_4","text":"\u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a","title":"\u5bfc\u5165"},{"location":"tuto_M_custom_map_overview/#_5","text":"\u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002","title":"\u5b9a\u5236"},{"location":"tuto_M_custom_map_overview/#_6","text":"\u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_custom_road_painter/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_1","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_2","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_M_custom_road_painter/#_3","text":"\u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_custom_road_painter/#_4","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807"},{"location":"tuto_M_custom_road_painter/#_5","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_M_custom_road_painter/#_6","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_M_custom_road_painter/#_7","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2"},{"location":"tuto_M_custom_road_painter/#_8","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_weather_landscape/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u5929\u6c14 \u5b9a\u5236 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 BP _ Sky \u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002 BP _ Weather \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002 \u6dfb\u52a0 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002 BP _ RepSpline \u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002 BP _ Spline \u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example . BP _ Wall \u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002 BP _ SplinePoweLine BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_2","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002","title":"\u5929\u6c14 \u5b9a\u5236"},{"location":"tuto_M_custom_weather_landscape/#bp_sky","text":"\u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002","title":"BP _ Sky"},{"location":"tuto_M_custom_weather_landscape/#bp_weather","text":"\u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002","title":"BP _ Weather"},{"location":"tuto_M_custom_weather_landscape/#_3","text":"\u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002","title":"\u6dfb\u52a0 \u5e8f\u5217\u5316 \u7f51\u683c"},{"location":"tuto_M_custom_weather_landscape/#bp_repspline","text":"\u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002","title":"BP _ RepSpline"},{"location":"tuto_M_custom_weather_landscape/#bp_spline","text":"\u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example .","title":"BP _ Spline"},{"location":"tuto_M_custom_weather_landscape/#bp_wall","text":"\u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002","title":"BP _ Wall"},{"location":"tuto_M_custom_weather_landscape/#bp_splinepoweline","text":"BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002","title":"BP _ SplinePoweLine"},{"location":"tuto_M_custom_weather_landscape/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_map/","text":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65","title":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"tuto_M_generate_map/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_map/#roadrunner_2","text":"\u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_3","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_M_generate_map/#_2","text":"\u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_pedestrian_navigation/","text":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002 \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002 \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a 1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_1","text":"\u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_2","text":"\u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_pedestrian_navigation/#_3","text":"\u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002","title":"\u884c\u4eba \u5bfc\u822a \u7f51\u683c"},{"location":"tuto_M_generate_pedestrian_navigation/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002","title":"\u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879"},{"location":"tuto_M_generate_pedestrian_navigation/#_5","text":"1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_manual_map_package/","text":"\u624b\u52a8 \u5305 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u624b\u52a8 \u51c6\u5907 \u5730\u56fe\u5305"},{"location":"tuto_M_manual_map_package/#_1","text":"\u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0","title":"\u624b\u52a8 \u5305 \u51c6\u5907"},{"location":"tuto_M_manual_map_package/#_2","text":"","title":"\u6807\u51c6 \u5730\u56fe"},{"location":"tuto_M_manual_map_package/#_3","text":"\u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_M_manual_map_package/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_content_authoring_maps/","text":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002 \u5927 \u5730\u56fe \u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002 \u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51 \u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002 TrueVision \u8bbe\u8ba1 \u5668 RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002 \u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u6750\u8d28 Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a \u9053\u8def \u753b\u5bb6 \u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u6811\u6728 \u548c \u690d\u88ab Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002 \u6811\u53f6 \u5de5\u5177 \u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#-","text":"Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_1","text":"\u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_content_authoring_maps/#_2","text":"\u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_3","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#roadrunner","text":"\u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002","title":"\u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51"},{"location":"tuto_content_authoring_maps/#truevision","text":"RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002","title":"TrueVision \u8bbe\u8ba1 \u5668"},{"location":"tuto_content_authoring_maps/#carla","text":"Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002","title":"\u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla"},{"location":"tuto_content_authoring_maps/#_4","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002","title":"\u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_5","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u4ea4\u901a\u706f"},{"location":"tuto_content_authoring_maps/#_6","text":"\u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u4ea4\u901a\u6807\u5fd7"},{"location":"tuto_content_authoring_maps/#_7","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_8","text":"\u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002","title":"\u9053\u8def \u753b\u5bb6"},{"location":"tuto_content_authoring_maps/#_9","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_content_authoring_maps/#_10","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61"},{"location":"tuto_content_authoring_maps/#_11","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_12","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_content_authoring_maps/#_13","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2"},{"location":"tuto_content_authoring_maps/#_14","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002","title":"\u6811\u6728 \u548c \u690d\u88ab"},{"location":"tuto_content_authoring_maps/#_15","text":"\u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002","title":"\u6811\u53f6 \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#_16","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_content_authoring_vehicles/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165 \u5efa\u6a21 \u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002 \u547d\u540d \u7ea6\u5b9a \u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86 \u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002 \u5bfc\u5165 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002 \u6dfb\u52a0 \u7535\u67a2 \u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002 \u8bbe\u7f6e \u7236\u7ea7 \u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002 \u5c06 \u6c7d\u8f66 \u96f6\u4ef6 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc \u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002 Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6 Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002 \u5bfc\u51fa \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002 \u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7 \u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002 \u521b\u5efa \u52a8\u753b \u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002 \u521b\u5efa \u84dd\u56fe \u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002 \u6750\u8d28 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28 Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a \u989c\u8272 ( Color ) \u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) \u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002 \u73bb\u7483 \u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002 \u73bb\u7483 \u7f51\u683c \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002 \u73bb\u7483 \u6750\u8d28 \u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002 \u5355\u5c42 \u73bb\u7483 \u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002 \u8f66\u8f6e \u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel \u8f66\u8f6e \u84dd\u56fe \u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a \u78b0\u649e \u7f51\u683c \u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002 \u8f6e\u80ce \u914d\u7f6e \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002 \u8f66\u8f6e \u5c3a\u5bf8 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002 \u60ac\u67b6 \u7279\u6027 \u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002 \u706f \u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002 UV \u8d34\u56fe \u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002 \u5bfc\u5165 \u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#-","text":"Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_1","text":"\u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002","title":"\u5efa\u6a21"},{"location":"tuto_content_authoring_vehicles/#_2","text":"\u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002","title":"\u547d\u540d \u7ea6\u5b9a"},{"location":"tuto_content_authoring_vehicles/#_3","text":"\u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002","title":"\u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_4","text":"\u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles/#_5","text":"\u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002","title":"\u6dfb\u52a0 \u7535\u67a2"},{"location":"tuto_content_authoring_vehicles/#_6","text":"\u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002","title":"\u8bbe\u7f6e \u7236\u7ea7"},{"location":"tuto_content_authoring_vehicles/#_7","text":"\u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002","title":"\u5c06 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc"},{"location":"tuto_content_authoring_vehicles/#blender-4","text":"Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002","title":"Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6"},{"location":"tuto_content_authoring_vehicles/#_8","text":"\u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002","title":"\u5bfc\u51fa"},{"location":"tuto_content_authoring_vehicles/#_9","text":"\u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002","title":"\u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_content_authoring_vehicles/#_10","text":"\u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002","title":"\u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7"},{"location":"tuto_content_authoring_vehicles/#_11","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002","title":"\u521b\u5efa \u52a8\u753b"},{"location":"tuto_content_authoring_vehicles/#_12","text":"\u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002","title":"\u521b\u5efa \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_13","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_14","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a","title":"\u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#color","text":"\u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a","title":"\u989c\u8272 ( Color )"},{"location":"tuto_content_authoring_vehicles/#clear-coat","text":"\u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002","title":"\u900f\u660e \u6d82\u5c42 ( Clear coat )"},{"location":"tuto_content_authoring_vehicles/#orange-peel","text":"\u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002","title":"\u7c92\u72b6 \u8868\u9762 ( Orange peel )"},{"location":"tuto_content_authoring_vehicles/#flakes","text":"\u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f","title":"\u8584\u7247 ( Flakes )"},{"location":"tuto_content_authoring_vehicles/#dust","text":"\u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u7070\u5c18 ( Dust )"},{"location":"tuto_content_authoring_vehicles/#_15","text":"\u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002","title":"\u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_16","text":"\u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002","title":"\u73bb\u7483 \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_17","text":"\u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002","title":"\u73bb\u7483 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_18","text":"\u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002","title":"\u5355\u5c42 \u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_19","text":"\u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel","title":"\u8f66\u8f6e"},{"location":"tuto_content_authoring_vehicles/#_20","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a","title":"\u8f66\u8f6e \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_21","text":"\u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002","title":"\u78b0\u649e \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_22","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002","title":"\u8f6e\u80ce \u914d\u7f6e"},{"location":"tuto_content_authoring_vehicles/#_23","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002","title":"\u8f66\u8f6e \u5c3a\u5bf8"},{"location":"tuto_content_authoring_vehicles/#_24","text":"\u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002","title":"\u60ac\u67b6 \u7279\u6027"},{"location":"tuto_content_authoring_vehicles/#_25","text":"\u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002","title":"\u706f"},{"location":"tuto_content_authoring_vehicles/#uv","text":"\u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002","title":"UV \u8d34\u56fe"},{"location":"tuto_content_authoring_vehicles/#_26","text":"\u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles_materials/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"Tuto content authoring vehicles materials"},{"location":"tuto_content_authoring_vehicles_materials/#-","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599"},{"location":"tuto_content_authoring_vehicles_materials/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a"},{"location":"tuto_first_steps/","text":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( autonomous driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 \u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 \u52a0\u8f7d \u5730\u56fe \u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) ) \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' ) \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( autonomous driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86","title":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla_1","text":"\u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002","title":"\u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237\u7aef"},{"location":"tuto_first_steps/#_1","text":"\u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u52a0\u8f7d \u5730\u56fe"},{"location":"tuto_first_steps/#_2","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a","title":"\u89c2\u5bdf\u8005 \u5bfc\u822a"},{"location":"tuto_first_steps/#_3","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272"},{"location":"tuto_first_steps/#_4","text":"\u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002","title":"\u6dfb\u52a0 \u4f20\u611f\u5668"},{"location":"tuto_first_steps/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86"},{"location":"tuto_first_steps/#_6","text":"\u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) )","title":"\u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_first_steps/#_7","text":"Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' )","title":"\u9009\u62e9 \u4f60 \u7684 \u5730\u56fe"},{"location":"tuto_first_steps/#_8","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86"},{"location":"tutorials/","text":"\u6559\u7a0b \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002 \u4e00\u822c Carla \u7279\u70b9 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002 \u6784\u5efa \u4e0e \u96c6\u6210 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002 \u8d44\u4ea7 \u548c \u5730\u56fe \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002 \u5f00\u53d1 \u5f00\u53d1\u8005 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u6559\u7a0b"},{"location":"tutorials/#_1","text":"\u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002","title":"\u6559\u7a0b"},{"location":"tutorials/#_2","text":"","title":"\u4e00\u822c"},{"location":"tutorials/#carla","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002","title":"Carla \u7279\u70b9"},{"location":"tutorials/#_3","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002","title":"\u6784\u5efa \u4e0e \u96c6\u6210"},{"location":"tutorials/#_4","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002","title":"\u8d44\u4ea7 \u548c \u5730\u56fe"},{"location":"tutorials/#_5","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002","title":"\u5f00\u53d1\u8005"},{"location":"tutorials/#_6","text":"\u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u89c6\u9891\u6559\u7a0b"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/","text":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528 \u5b89\u88c5 \u8fdb\u5236 \u4e8c\u8fdb\u5236 add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx \u5b89\u88c5 \u53ef\u89c6 \u53ef\u89c6\u5316 apt install libgl1 - mesa - glx xvfb \u5b89\u88c5 conda \u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#fenics","text":"","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_1","text":"add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx","title":"\u5b89\u88c5 \u4e8c\u8fdb\u5236"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_2","text":"apt install libgl1 - mesa - glx xvfb","title":"\u5b89\u88c5 \u53ef\u89c6\u5316"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#conda","text":"\u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"\u5b89\u88c5 conda"},{"location":"OpenRadioss/FEniCSBuildFromSource/","text":"\u73af\u5883 C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"FEniCSBuildFromSource"},{"location":"OpenRadioss/FEniCSBuildFromSource/#_1","text":"C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"\u73af\u5883"},{"location":"OpenRadioss/examples/","text":"\u793a\u4f8b \u6a21\u578b Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"Examples"},{"location":"OpenRadioss/examples/#_1","text":"Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"\u793a\u4f8b \u6a21\u578b"},{"location":"OpenRadioss/use_OpenRadioss_linux/","text":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1 \u73af\u5883 Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u6307\u4ee4 \u83b7\u53d6 \u6e90\u7801 LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git . OpenRadioss Starter \u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory OpenRadioss Engine \u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist \u81ea\u52a8 \u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09 cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi OpenRadioss \u7684 \u4f7f\u7528 \u524d \u5904\u7406 gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * ) \u8ba1\u7b97 \u5904\u7406 \u540e\u5904\u7406 ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002 bash \u811a\u672c myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002 \u8fd0\u884c \u7ed3\u679c \u603b\u7ed3 \u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002 To Do \u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss \u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = = OpenRadioss \u4e8c\u6b21 \u5f00\u53d1 \u4e8c\u6b21\u5f00\u53d1 READ _ MATERIAL _ MODELS . F \u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002 HM _ READ _ MAT . F \u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002 Radioss \u4e2d \u6750\u6599 \u672c\u6784 \u540c\u6027 \u5404\u5411\u540c\u6027 \u5f39\u6027 Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"use OpenRadioss linux"},{"location":"OpenRadioss/use_OpenRadioss_linux/#linux-openradioss","text":"","title":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_1","text":"Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u73af\u5883"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_2","text":"","title":"\u7f16\u8bd1 \u6307\u4ee4"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_3","text":"LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git .","title":"\u83b7\u53d6 \u6e90\u7801"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-starter","text":"\u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory","title":"OpenRadioss Starter"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-engine","text":"\u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist","title":"OpenRadioss Engine"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_4","text":"cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi","title":"\u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss","text":"","title":"OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_5","text":"gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * )","title":"\u524d \u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_6","text":"","title":"\u8ba1\u7b97"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_7","text":"ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002","title":"\u540e\u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#lsdyna","text":"","title":"\u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_8","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_linux/#bash","text":"myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002","title":"bash \u811a\u672c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_9","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_10","text":"\u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002","title":"\u603b\u7ed3"},{"location":"OpenRadioss/use_OpenRadioss_linux/#to-do","text":"\u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002","title":"To Do"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_1","text":"\u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = =","title":"\u5728 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_2","text":"","title":"OpenRadioss \u4e8c\u6b21\u5f00\u53d1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#read_material_modelsf","text":"\u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002","title":"READ _ MATERIAL _ MODELS . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#hm_read_matf","text":"\u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002","title":"HM _ READ _ MAT . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#radioss","text":"","title":"Radioss \u4e2d \u6750\u6599 \u672c\u6784"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_11","text":"Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"\u5404\u5411\u540c\u6027 \u5f39\u6027"},{"location":"OpenRadioss/use_OpenRadioss_windows/","text":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002 \u5904\u7406 \u6b65\u9aa4 \u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002 \u8fd0\u884c \u7ed3\u679c","title":"OpenRadios \u6709\u9650\u5143 \u4eff\u771f"},{"location":"OpenRadioss/use_OpenRadioss_windows/#windows-openradioss","text":"","title":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_1","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_2","text":"\u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002","title":"\u5904\u7406 \u6b65\u9aa4"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_3","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"algorithms/control/","text":"\u63a7\u5236 \u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb \u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002 \u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u6982\u8ff0 \uff1a PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002 \u7ec4\u4ef6 \uff1a \u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002 \u5e94\u7528 \uff1a \u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002 \u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 \u6982\u8ff0 \uff1a \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002 \u4e3b\u8981 \u7279\u5f81 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002 \u5e94\u7528 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \uff1a \u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u63a7\u5236"},{"location":"algorithms/control/#_1","text":"","title":"\u63a7\u5236"},{"location":"algorithms/control/#_2","text":"\u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002","title":"\u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/control/#pid","text":"","title":"\u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236\u5668"},{"location":"algorithms/control/#_3","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_4","text":"\u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002","title":"\u7ec4\u4ef6 \uff1a"},{"location":"algorithms/control/#_5","text":"\u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_6","text":"","title":"\u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236"},{"location":"algorithms/control/#_7","text":"\u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_8","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002","title":"\u4e3b\u8981 \u7279\u5f81 \uff1a"},{"location":"algorithms/control/#_9","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_10","text":"\u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe \uff1a"},{"location":"algorithms/control/#_11","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/localization/","text":"\u5b9a\u4f4d \u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002 \u5355\u72ec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_1","text":"","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_2","text":"ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002","title":"\u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/localization/#_3","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u5355\u72ec \u7684 \u4f20\u611f\u5668"},{"location":"algorithms/localization/#_4","text":"\u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u4f20\u611f\u5668 \u878d\u5408"},{"location":"algorithms/localization/#_5","text":"\u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/localization/#_6","text":"Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/perception/","text":"\u611f\u77e5 \u611f\u77e5 \u6a21\u5757 \u7b80\u4ecb ISS \u611f\u77e5 \u6a21\u5757 \u4e3a \u591a\u79cd \u611f\u77e5 \u4efb\u52a1 \u63d0\u4f9b \u652f\u6301 \uff0c \u4f8b\u5982 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u3001 2D \u7269\u4f53 \u8bc6\u522b \u3001 2D \u8bed\u4e49 \u5206\u5272 \u548c \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff08 Bird ' s Eye View , BEV \uff09 \u5730\u56fe \u751f\u6210 \u3002 \u6211\u4eec \u7684 \u56e2\u961f \u4e13\u6ce8 \u4e8e \u5f00\u53d1 \u548c \u5b8c\u5584 \u8fd9\u4e9b \u5173\u952e \u7684 \u611f\u77e5 \u4efb\u52a1 \u3002 \u8fd9\u4e9b \u4efb\u52a1 \u662f \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u5b89\u5168 \u3001 \u7cbe\u786e \u5730 \u5728 \u590d\u6742 \u73af\u5883 \u4e2d \u884c\u9a76 \u7684 \u57fa\u7840 \u3002 \u4efb\u52a1 ISS \u611f\u77e5 \u6a21\u5757 \u652f\u6301 \u7684 \u4e0d\u540c \u4efb\u52a1 \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u4e86\u89e3 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u53ca\u5176 \u5143\u7d20 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u91c7\u7528 \u5148\u8fdb \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6280\u672f \u6765 \u5b9e\u65f6 \u68c0\u6d4b \u548c \u5206\u6790 \u4e09\u7ef4 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5373\u4f7f \u5728 \u52a8\u6001 \u548c \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u4e2d \uff0c \u8fd9\u79cd \u529f\u80fd \u4e5f \u4f7f \u6211\u4eec \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u80fd\u591f \u505a\u51fa \u660e\u667a \u7684 \u51b3\u7b56 \u5e76 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 2D \u7269\u4f53 \u68c0\u6d4b \uff1a \u8bc6\u522b \u548c \u8bc6\u522b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u7684 \u7269\u4f53 \u5bf9\u4e8e \u5b89\u5168 \u5bfc\u822a \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u6211\u4eec \u7684 \u6846\u67b6 \u5229\u7528 \u5c16\u7aef \u7b97\u6cd5 \u6765 \u8bc6\u522b \u548c \u5206\u7c7b \u5404\u79cd \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u6807\u724c \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u589e\u5f3a \u6001\u52bf \u611f\u77e5 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u548c 2D \u7269\u4f53 \u68c0\u6d4b 2D \u8bed\u4e49 \u5206\u5272 \uff1a \u8bed\u4e49 \u5206\u5272 \u662f \u8be6\u7ec6 \u4e86\u89e3 \u73af\u5883 \u7684 \u4e00\u9879 \u91cd\u8981 \u4efb\u52a1 \u3002 \u6211\u4eec \u5229\u7528 \u6700 \u5148\u8fdb \u7684 \u6280\u672f \u5c06 \u573a\u666f \u5212\u5206 \u4e3a \u6709 \u610f\u4e49 \u7684 \u90e8\u5206 \uff0c \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u7406\u89e3 \u9053\u8def \u5e03\u5c40 \u5e76 \u66f4\u597d \u5730 \u54cd\u5e94 \u590d\u6742 \u7684 \u57ce\u5e02 \u666f\u89c2 \u3002 \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 BEV \u5730\u56fe \u751f\u6210 \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u751f\u6210 \u9e1f\u77b0 \u9e1f\u77b0\u56fe ( BEV ) \u5730\u56fe \uff0c \u63d0\u4f9b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u6574\u4f53 \u89c6\u56fe \u3002 \u8be5 \u5730\u56fe \u662f \u8def\u5f84 \u89c4\u5212 \u548c \u51b3\u7b56 \u7684 \u5b9d\u8d35 \u5de5\u5177 \uff0c \u53ef \u589e\u5f3a \u8f66\u8f86 \u9ad8\u6548 \u3001 \u5b89\u5168 \u5bfc\u822a \u7684 \u80fd\u529b \u3002 \u76ee\u524d \uff0c \u6211\u4eec \u6b63\u5728 \u52aa\u529b \u5f00\u53d1 \u8fd9\u4e9b \u6a21\u5757 \uff0c \u6211\u4eec \u5f88 \u9ad8\u5174 \u5730 \u544a\u8bc9 \u5927\u5bb6 \uff0c \u6211\u4eec \u5df2\u7ecf \u4e3a \u524d \u4e09\u4e2a \u4efb\u52a1 \u5f00\u53d1 \u4e86 \u521d\u59cb \u6a21\u578b \u521d\u59cb\u6a21\u578b \u3002 \u7136\u800c \uff0c \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u8fd9\u4e9b \u6a21\u578b \u4ecd \u5728 \u4e0d\u65ad \u5b8c\u5584 \u4e0d\u65ad\u5b8c\u5584 \uff0c \u4ee5 \u63d0\u9ad8 \u5176 \u6027\u80fd \u548c \u53ef\u9760 \u53ef\u9760\u6027 \u3002 \u6211\u4eec \u8fd8 \u63d0\u4f9b \u4e86 \u6709\u5173 ISS \u751f\u6210 \u7684 \u7269\u4f53 \u68c0\u6d4b \u7684 \u6570\u636e \u96c6 \u3002 \u4ecd \u5728 \u66f4\u65b0 \u3002","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","title":"\u4efb\u52a1"},{"location":"algorithms/planning/","text":"\u89c4\u5212 \u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb \u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b \u8def\u7ebf \u89c4\u5212 \u76ee\u6807 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002 \u8f93\u5165 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u8f93\u51fa \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u6311\u6218 \u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002 \u884c\u4e3a \u89c4\u5212 \u76ee\u6807 \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002 \u8f93\u51fa \u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002 \u6311\u6218 \u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u76ee\u6807 \u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002 \u8f93\u51fa \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002 \u6311\u6218 \u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/planning/#_1","text":"","title":"\u89c4\u5212"},{"location":"algorithms/planning/#_2","text":"\u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b","title":"\u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/planning/#_3","text":"","title":"\u8def\u7ebf \u89c4\u5212 "},{"location":"algorithms/planning/#_4","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_5","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_6","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_7","text":"\u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_8","text":"","title":"\u884c\u4e3a \u89c4\u5212"},{"location":"algorithms/planning/#_9","text":"\u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_10","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_11","text":"\u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_12","text":"\u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_13","text":"","title":"\u8fd0\u52a8 \u89c4\u5212"},{"location":"algorithms/planning/#_14","text":"\u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_15","text":"\u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_16","text":"\u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_17","text":"\u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_18","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/prediction/","text":"\u9884\u6d4b \u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd \u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u6982\u8ff0 \u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002 \u9002\u7528 \u9002\u7528\u6027 \u548c \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002 \u793a\u4f8b \u7528\u4f8b \u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002 Motion Transformer \u6982\u8ff0 Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ] \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ? \u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002 \u67b6\u6784 \u548c \u7ec4\u4ef6 \u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002 \u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"Prediction"},{"location":"algorithms/prediction/#_1","text":"","title":"\u9884\u6d4b"},{"location":"algorithms/prediction/#_2","text":"\u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002","title":"\u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/prediction/#_3","text":"","title":"\u6052\u901f \u8fd0\u52a8 \u9884\u6d4b\u5668"},{"location":"algorithms/prediction/#_4","text":"\u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#_5","text":"\u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002","title":"\u9002\u7528\u6027 \u548c \u5c40\u9650\u6027"},{"location":"algorithms/prediction/#_6","text":"\u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002","title":"\u6570\u5b66\u6a21\u578b"},{"location":"algorithms/prediction/#_7","text":"\u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002","title":"\u793a\u4f8b \u7528\u4f8b"},{"location":"algorithms/prediction/#motion-transformer","text":"","title":"Motion Transformer"},{"location":"algorithms/prediction/#_8","text":"Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ]","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#motion-transformer_1","text":"\u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002","title":"\u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ?"},{"location":"algorithms/prediction/#_9","text":"\u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002","title":"\u67b6\u6784 \u548c \u7ec4\u4ef6"},{"location":"algorithms/prediction/#_10","text":"\u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002","title":"\u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6\u4fe1\u606f"},{"location":"algorithms/prediction/#_11","text":"\u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/prediction/#_12","text":"Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/Control_/","text":"Control Introduction to the Control Module The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) . PID Controller for Waypoint Tracking Overview : The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position . Components : The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change . Application : We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation . Model Predictive Control ( MPC ) for Trajectory Tracking Overview : Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory . Key Features : The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions . Application : The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers . Implementation Roadmap : Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"Control"},{"location":"algorithms/Control_/#control","text":"","title":"Control"},{"location":"algorithms/Control_/#introduction-to-the-control-module","text":"The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) .","title":"Introduction to the Control Module"},{"location":"algorithms/Control_/#pid-controller-for-waypoint-tracking","text":"","title":"PID Controller for Waypoint Tracking"},{"location":"algorithms/Control_/#overview","text":"The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position .","title":"Overview :"},{"location":"algorithms/Control_/#components","text":"The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change .","title":"Components :"},{"location":"algorithms/Control_/#application","text":"We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation .","title":"Application :"},{"location":"algorithms/Control_/#model-predictive-control-mpc-for-trajectory-tracking","text":"","title":"Model Predictive Control ( MPC ) for Trajectory Tracking"},{"location":"algorithms/Control_/#overview_1","text":"Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory .","title":"Overview :"},{"location":"algorithms/Control_/#key-features","text":"The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions .","title":"Key Features :"},{"location":"algorithms/Control_/#application_1","text":"The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers .","title":"Application :"},{"location":"algorithms/Control_/#implementation-roadmap","text":"Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios .","title":"Implementation Roadmap :"},{"location":"algorithms/Control_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"References"},{"location":"algorithms/Control_/pid/","text":"To - DO !","title":"PID Controller"},{"location":"algorithms/DRL/_index/","text":"Deep Reinforcement Learning Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center } Our Plan 1 . Problem Formulation Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors . 2 . Simulator Setup We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible . 3 . Baseline DRL Algorithm Selection Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch . 4 . Training in Simulation Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required . 5 . Transfer Learning and Domain Adaptation Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot . 6 . Safety Precautions Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings . 7 . Evaluation We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one . 8 . Iterate and Improve Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"Reinforcement Learning"},{"location":"algorithms/DRL/_index/#deep-reinforcement-learning","text":"Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center }","title":"Deep Reinforcement Learning"},{"location":"algorithms/DRL/_index/#our-plan","text":"","title":"Our Plan"},{"location":"algorithms/DRL/_index/#1-problem-formulation","text":"Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors .","title":"1 . Problem Formulation"},{"location":"algorithms/DRL/_index/#2-simulator-setup","text":"We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible .","title":"2 . Simulator Setup"},{"location":"algorithms/DRL/_index/#3-baseline-drl-algorithm-selection","text":"Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch .","title":"3 . Baseline DRL Algorithm Selection"},{"location":"algorithms/DRL/_index/#4-training-in-simulation","text":"Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required .","title":"4 . Training in Simulation"},{"location":"algorithms/DRL/_index/#5-transfer-learning-and-domain-adaptation","text":"Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot .","title":"5 . Transfer Learning and Domain Adaptation"},{"location":"algorithms/DRL/_index/#6-safety-precautions","text":"Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings .","title":"6 . Safety Precautions"},{"location":"algorithms/DRL/_index/#7-evaluation","text":"We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one .","title":"7 . Evaluation"},{"location":"algorithms/DRL/_index/#8-iterate-and-improve","text":"Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"8 . Iterate and Improve"},{"location":"algorithms/Mapping/","text":"To - DO ! !","title":"Mapping"},{"location":"algorithms/Planning_/","text":"Planning Introduction to the Planning Module The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center } Route Planning Objective The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] . Inputs The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles . Outputs The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles . Challenges There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient . Behavior Planning Objective The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] . Inputs To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data . Outputs The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives . Challenges In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases . Motion Planning Objective The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] . Inputs To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions . Outputs The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame . Challenges To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/Planning_/#planning","text":"","title":"Planning"},{"location":"algorithms/Planning_/#introduction-to-the-planning-module","text":"The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center }","title":"Introduction to the Planning Module"},{"location":"algorithms/Planning_/#route-planning","text":"","title":"Route Planning"},{"location":"algorithms/Planning_/#objective","text":"The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs","text":"The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs","text":"The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges","text":"There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient .","title":"Challenges"},{"location":"algorithms/Planning_/#behavior-planning","text":"","title":"Behavior Planning"},{"location":"algorithms/Planning_/#objective_1","text":"The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_1","text":"To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_1","text":"The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_1","text":"In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases .","title":"Challenges"},{"location":"algorithms/Planning_/#motion-planning","text":"","title":"Motion Planning"},{"location":"algorithms/Planning_/#objective_2","text":"The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_2","text":"To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_2","text":"The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_2","text":"To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping .","title":"Challenges"},{"location":"algorithms/Planning_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"References"},{"location":"algorithms/Planning_/frenet_lattice/","text":"frenet _ lattice The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc . Inputs The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc . Outputs The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost . FrenetPath ( class ) Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory . Instance Variables t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero . LatticePlanner ( class ) LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc . Instance Variables route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory . Methods _ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Frenet Optimal Trajectory"},{"location":"algorithms/Planning_/frenet_lattice/#frenet_lattice","text":"The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc .","title":"frenet _ lattice"},{"location":"algorithms/Planning_/frenet_lattice/#inputs","text":"The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc .","title":"Inputs"},{"location":"algorithms/Planning_/frenet_lattice/#outputs","text":"The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost .","title":"Outputs"},{"location":"algorithms/Planning_/frenet_lattice/#frenetpath-class","text":"Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory .","title":"FrenetPath ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables","text":"t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#latticeplanner-class","text":"LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc .","title":"LatticePlanner ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables_1","text":"route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#methods","text":"_ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Methods"},{"location":"algorithms/Planning_/lanelet_planner/","text":"Lanelet2Planner A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) . Instance Variables lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Lanelet2 Global Planner"},{"location":"algorithms/Planning_/lanelet_planner/#lanelet2planner","text":"A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) .","title":"Lanelet2Planner"},{"location":"algorithms/Planning_/lanelet_planner/#instance-variables","text":"lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Instance Variables"},{"location":"algorithms/Sensors/_BeamNG/","text":"Sensors for interaction between ISS and BeamNG . BeamNG Sensors { : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_BeamNG/#beamng-sensors","text":"{ : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_CARLA/","text":"Sensors in CARLA Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . Instance Variables is _ listening ( boolean ) When True the sensor will be waiting for data . Methods listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data . CarlaCamera The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera . CarlaLiDAR This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 . CarlaGNSS Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition . GNSS attributes Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) . Output attributes Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"CARLA Sensors"},{"location":"algorithms/Sensors/_CARLA/#sensors-in-carla","text":"Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary .","title":"Sensors in CARLA"},{"location":"algorithms/Sensors/_CARLA/#instance-variables","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"Instance Variables"},{"location":"algorithms/Sensors/_CARLA/#methods","text":"listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data .","title":"Methods"},{"location":"algorithms/Sensors/_CARLA/#carlacamera","text":"The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera .","title":"CarlaCamera"},{"location":"algorithms/Sensors/_CARLA/#carlalidar","text":"This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 .","title":"CarlaLiDAR"},{"location":"algorithms/Sensors/_CARLA/#carlagnss","text":"Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition .","title":"CarlaGNSS"},{"location":"algorithms/Sensors/_CARLA/#gnss-attributes","text":"Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) .","title":"GNSS attributes"},{"location":"algorithms/Sensors/_CARLA/#output-attributes","text":"Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"Output attributes"},{"location":"algorithms/Sensors/_index/","text":"Sensors in Self - driving Systems Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors"},{"location":"algorithms/Sensors/_index/#sensors-in-self-driving-systems","text":"Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors in Self - driving Systems"},{"location":"algorithms/perception_/","text":"Perception { : . d - inline - block } Introduction to the Perception Module The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision . Tasks The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Perception"},{"location":"algorithms/perception_/#perception","text":"{ : . d - inline - block }","title":"Perception"},{"location":"algorithms/perception_/#introduction-to-the-perception-module","text":"The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision .","title":"Introduction to the Perception Module"},{"location":"algorithms/perception_/#tasks","text":"The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Tasks"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/","text":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u53cd\u9988 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5 \u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#windowscarlag29","text":"\u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#carla-g29","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["ja"],"min_search_length":2,"prebuild_index":false,"separator":"[\\s\\-\\.]+"},"docs":[{"location":"","text":"Carla \u6587\u6863 \u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002 \u5165\u95e8 \u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002 \u6784\u5efa Carla \u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 Carla \u4e3b\u9898 \u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002 \u4ea4\u901a \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u884c\u4eba \u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u9ad8\u7ea7 \u6982\u5ff5 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u8003 Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u6559\u7a0b \uff08 \u901a\u7528 \uff09 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u6559\u7a0b \uff08 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \uff09 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5 \u793a\u4f8b \u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002 \u8d21\u732e \u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002 \u5176\u4ed6 RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u4e3b\u9875"},{"location":"#carla","text":"\u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002","title":"Carla \u6587\u6863"},{"location":"#_1","text":"\u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002","title":"\u5165\u95e8"},{"location":"#carla_1","text":"\u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002","title":"\u6784\u5efa Carla"},{"location":"#carla_2","text":"\u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002","title":"Carla \u4e3b\u9898"},{"location":"#_2","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002","title":"\u4ea4\u901a"},{"location":"#_3","text":"\u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u884c\u4eba"},{"location":"#_4","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002","title":"\u9ad8\u7ea7 \u6982\u5ff5"},{"location":"#_5","text":"Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002","title":"\u53c2\u8003"},{"location":"#_6","text":"Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"#_7","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe","title":"\u5927 \u5730\u56fe"},{"location":"#_8","text":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla","title":"\u6559\u7a0b \uff08 \u901a\u7528 \uff09"},{"location":"#_9","text":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599","title":"\u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09"},{"location":"#_10","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5","title":"\u6559\u7a0b \uff08 \u5f00\u53d1\u4eba\u5458 \uff09"},{"location":"#_11","text":"\u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b","title":"\u793a\u4f8b"},{"location":"#carla_3","text":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002","title":"Carla \u751f\u6001\u7cfb\u7edf"},{"location":"#_12","text":"\u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002","title":"\u8d21\u732e"},{"location":"#_13","text":"RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u5176\u4ed6"},{"location":"3rd_party_integrations/","text":"3rd Party Integrations Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib ROS bridge Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . SUMO Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here . PTV Vissim PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide Scenic Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios . CarSIM Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here . OpenDRIVE OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here RSS - Responsibility Sensitive Safety Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here AWS and RLlib integration The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here . Chrono physics Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#3rd-party-integrations","text":"Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#ros-bridge","text":"Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS bridge"},{"location":"3rd_party_integrations/#sumo","text":"Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here .","title":"SUMO"},{"location":"3rd_party_integrations/#ptv-vissim","text":"PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide","title":"PTV Vissim"},{"location":"3rd_party_integrations/#scenic","text":"Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios .","title":"Scenic"},{"location":"3rd_party_integrations/#carsim","text":"Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here .","title":"CarSIM"},{"location":"3rd_party_integrations/#opendrive","text":"OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here","title":"OpenDRIVE"},{"location":"3rd_party_integrations/#rss-responsibility-sensitive-safety","text":"Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here","title":"RSS - Responsibility Sensitive Safety"},{"location":"3rd_party_integrations/#aws-and-rllib-integration","text":"The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here .","title":"AWS and RLlib integration"},{"location":"3rd_party_integrations/#chrono-physics","text":"Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"Chrono physics"},{"location":"adv_agents/","text":"Carla \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002 \u8ba1\u5212 \u4e0e \u63a7\u5236 controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002 \u667a\u80fd \u4f53 \u884c\u4e3a basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002 \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive \u884c\u4e3a \u7c7b\u578b \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( ) \u521b\u5efa \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#carla","text":"Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#_1","text":"Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002","title":"\u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0"},{"location":"adv_agents/#_2","text":"controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002","title":"\u8ba1\u5212 \u4e0e \u63a7\u5236"},{"location":"adv_agents/#_3","text":"basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002","title":"\u667a\u80fd \u4f53 \u884c\u4e3a"},{"location":"adv_agents/#_4","text":"\u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive","title":"\u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53"},{"location":"adv_agents/#_5","text":"\u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002","title":"\u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_6","text":"\u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( )","title":"\u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_7","text":"Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"\u521b\u5efa \u667a\u80fd \u4f53"},{"location":"adv_benchmarking/","text":"\u57fa\u51c6 \u6027\u80fd \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u5f00\u59cb \u4e4b\u524d \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil \u6982\u8981 python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ] \u6807\u5fd7 -- host : IP _ ADDRESS \u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002 -- port : \u7aef\u53e3 \u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- file : \u6587\u4ef6 \u6587\u4ef6\u540d . md \u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002 -- tm \u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6 -- ticks \u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002 -- \u540c\u6b65 \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- async \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- fixed _ dt \u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002 -- render _ mode \u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- no _ render _ mode \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- show _ scenarios \u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002 -- sensors \uff1a \u6574\u6570 \u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M -- maps \uff1a \u57ce\u5e02 \u540d\u79f0 \u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps -- \u5929\u6c14 \uff1a \u6574\u6570 Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode Carla \u6027\u80fd \u62a5\u544a \u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_1","text":"\u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_2","text":"\u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002","title":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c"},{"location":"adv_benchmarking/#_3","text":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"adv_benchmarking/#_4","text":"python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ]","title":"\u6982\u8981"},{"location":"adv_benchmarking/#_5","text":"","title":"\u6807\u5fd7"},{"location":"adv_benchmarking/#-host-ip_address","text":"\u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002","title":"-- host : IP _ ADDRESS"},{"location":"adv_benchmarking/#-port","text":"\u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002","title":"-- port : \u7aef\u53e3"},{"location":"adv_benchmarking/#-file-md","text":"\u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002","title":"-- file : \u6587\u4ef6\u540d . md"},{"location":"adv_benchmarking/#-tm","text":"\u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6","title":"-- tm"},{"location":"adv_benchmarking/#-ticks","text":"\u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002","title":"-- ticks"},{"location":"adv_benchmarking/#-","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- \u540c\u6b65"},{"location":"adv_benchmarking/#-async","text":"\u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- async"},{"location":"adv_benchmarking/#-fixed_dt","text":"\u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002","title":"-- fixed _ dt"},{"location":"adv_benchmarking/#-render_mode","text":"\u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- render _ mode"},{"location":"adv_benchmarking/#-no_render_mode","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- no _ render _ mode"},{"location":"adv_benchmarking/#-show_scenarios","text":"\u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002","title":"-- show _ scenarios"},{"location":"adv_benchmarking/#-sensors","text":"\u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M","title":"-- sensors \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#-maps","text":"\u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps","title":"-- maps \uff1a \u57ce\u5e02 \u540d\u79f0"},{"location":"adv_benchmarking/#-_1","text":"Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset","title":"-- \u5929\u6c14 \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#_6","text":"1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode","title":"\u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"adv_benchmarking/#carla","text":"\u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"Carla \u6027\u80fd \u62a5\u544a"},{"location":"adv_digital_twin/","text":"\u7b14\u8bb0 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u9879 \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u5730\u56fe \u7684 \u67d0\u4e9b \u90e8\u5206 \u53ef\u80fd \u672a \u88c5\u9970 \u6216 \u65e0 \u7eb9\u7406 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \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 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a Using a URL \u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002 \u4e0b\u8f7d OSM \u6587\u4ef6 \u5e76 \u5728 \u754c\u9762 \u4e2d \u5bfc\u822a \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file > 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 \u6807\u8bb0 \u548c \u7eb9\u7406 \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","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"adv_digital_twin/#_1","text":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \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 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002","title":"\u6784\u5efa OSM \u6e32\u67d3\u5668"},{"location":"adv_digital_twin/#osm_1","text":"\u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a","title":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e"},{"location":"adv_digital_twin/#using-a-url","text":"\u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002","title":"Using a URL"},{"location":"adv_digital_twin/#osm_2","text":"\u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file >","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 \u6807\u8bb0 \u548c \u7eb9\u7406 \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_multigpu/","text":"Carla \u591a GPU \u529f\u80fd Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002 \u540c\u6b65 \u6a21\u5f0f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#carla-gpu","text":"Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#_1","text":"\u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002","title":"\u4e3b \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_2","text":"\u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002","title":"\u8f85\u52a9 \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_3","text":"\u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_opendrive/","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210 \u6982\u8ff0 \u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u70b9 \u548c \u6536\u76ca \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002 \u7f51\u683c \u751f\u6210 \u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#opendrive","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#_1","text":"\u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u70b9 \u548c \u6536\u76ca \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002","title":"\u6982\u8ff0"},{"location":"adv_opendrive/#_2","text":"\u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002","title":"\u8fd0\u884c \u72ec\u7acb \u5730\u56fe"},{"location":"adv_opendrive/#_3","text":"\u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u7f51\u683c \u751f\u6210"},{"location":"adv_procedural_building_tool/","text":"\u7b14\u8bb0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u4e2a \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119 \u6253\u5f00 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002 \u7f51\u683c \u53c2\u6570 \u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002 \u7f51\u683c \u5143\u7d20 \u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002 \u5957 \u63a5\u5b57 \u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002 \u5916\u5899 \u6750\u6599 \u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002 \u70d8\u7119 \u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"Adv procedural building tool"},{"location":"adv_procedural_building_tool/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_2","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002","title":"\u6253\u5f00 \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_3","text":"\u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002","title":"\u57fa\u672c\u53c2\u6570"},{"location":"adv_procedural_building_tool/#_4","text":"\u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002","title":"\u7f51\u683c \u53c2\u6570"},{"location":"adv_procedural_building_tool/#_5","text":"\u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002","title":"\u7f51\u683c \u5143\u7d20"},{"location":"adv_procedural_building_tool/#_6","text":"\u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002","title":"\u5957 \u63a5\u5b57"},{"location":"adv_procedural_building_tool/#_7","text":"\u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002","title":"\u5916\u5899 \u6750\u6599"},{"location":"adv_procedural_building_tool/#_8","text":"\u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"\u70d8\u7119"},{"location":"adv_ptv/","text":"PTV - Vissim \u8054\u5408 \u4eff\u771f Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc \u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#ptv-vissim","text":"Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_1","text":"\u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_ptv/#_2","text":"\u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002","title":"\u8fd0\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_3","text":"\u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc"},{"location":"adv_recorder/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c \u8bb0\u5f55 \u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u64ad\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002 \u5f55\u5236 \u6587\u4ef6 \u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds \u67e5\u8be2 \u78b0\u649e \u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002 \u88ab \u5361\u4f4f \u7684 \u89d2\u8272 \u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 ) \u793a\u4f8b python \u811a\u672c PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_1","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_2","text":"\u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"adv_recorder/#_3","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u64ad\u653e"},{"location":"adv_recorder/#_4","text":"\u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002","title":"\u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50"},{"location":"adv_recorder/#_5","text":"\u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds","title":"\u5f55\u5236 \u6587\u4ef6"},{"location":"adv_recorder/#_6","text":"","title":"\u67e5\u8be2"},{"location":"adv_recorder/#_7","text":"\u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002","title":"\u78b0\u649e"},{"location":"adv_recorder/#_8","text":"\u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 )","title":"\u88ab \u5361\u4f4f \u7684 \u89d2\u8272"},{"location":"adv_recorder/#python","text":"PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u793a\u4f8b python \u811a\u672c"},{"location":"adv_rendering_options/","text":"\u6e32\u67d3 \u9009\u9879 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u8d28\u91cf \u7b49\u7ea7 Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002 \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\ \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002 \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_2","text":"","title":"\u56fe\u5f62 \u8d28\u91cf"},{"location":"adv_rendering_options/#vulkan-api","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"Vulkan \u56fe\u5f62 API"},{"location":"adv_rendering_options/#_3","text":"Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002","title":"\u8d28\u91cf \u7b49\u7ea7"},{"location":"adv_rendering_options/#_4","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_5","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"adv_rendering_options/#_6","text":"\u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002","title":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_7","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"adv_rendering_options/#_8","text":"\u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002","title":"\u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3"},{"location":"adv_rendering_options/#0912","text":"\u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09"},{"location":"adv_rendering_options/#0912_1","text":"\u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09"},{"location":"adv_rss/","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u6982\u8ff0 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u4f9d\u8d56 \u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus \u6784\u5efa \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss \u5f53\u524d \u72b6\u6001 RssSensor carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 RssRestrictor \u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_1","text":"Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_2","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u6982\u8ff0"},{"location":"adv_rss/#_3","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u7f16\u8bd1"},{"location":"adv_rss/#_4","text":"\u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus","title":"\u4f9d\u8d56"},{"location":"adv_rss/#_5","text":"\u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss","title":"\u6784\u5efa"},{"location":"adv_rss/#_6","text":"","title":"\u5f53\u524d \u72b6\u6001"},{"location":"adv_rss/#rsssensor","text":"carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002","title":"RssSensor"},{"location":"adv_rss/#rssrestrictor","text":"\u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"RssRestrictor"},{"location":"adv_sumo/","text":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa carla vtypes \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002 \u521b\u5efa SUMO \u7f51\u7edc \u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 \u8fd0\u884c \u540c\u6b65 \u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f \u4e0e Carla \u8fdb\u884c SUMO \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u548c SUMO \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#sumo","text":"Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210","title":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#_1","text":"\u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_sumo/#_2","text":"","title":"\u8fd0\u884c \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#carla-vtypes","text":"\u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002","title":"\u521b\u5efa carla vtypes"},{"location":"adv_sumo/#sumo_1","text":"\u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002","title":"\u521b\u5efa SUMO \u7f51\u7edc"},{"location":"adv_sumo/#_3","text":"\u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002","title":"\u8fd0\u884c \u540c\u6b65"},{"location":"adv_sumo/#sumo-npc","text":"\u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui \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":"\u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210"},{"location":"adv_synchrony_timestep/","text":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05 \u4eff\u771f \u8bb0\u5f55 Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002 \u7269\u7406 \u5b50\u6b65 \u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u53ef\u80fd \u7684 \u914d\u7f6e \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002 \u7269\u7406 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_1","text":"\u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_2","text":"\u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002","title":"\u4eff\u771f \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_3","text":"Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0","title":"\u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_4","text":"\u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05","title":"\u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_5","text":"Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002","title":"\u4eff\u771f \u8bb0\u5f55"},{"location":"adv_synchrony_timestep/#_6","text":"\u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002","title":"\u7269\u7406 \u5b50\u6b65"},{"location":"adv_synchrony_timestep/#-","text":"Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002","title":"\u5ba2\u6237\u7aef - \u670d\u52a1\u5668 \u540c\u6b65"},{"location":"adv_synchrony_timestep/#_7","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_8","text":"\u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_9","text":"\u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002","title":"\u53ef\u80fd \u7684 \u914d\u7f6e"},{"location":"adv_synchrony_timestep/#_10","text":"Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u7269\u7406 \u786e\u5b9a\u6027"},{"location":"adv_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002 \u7528\u6237 \u5b9a\u5236 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u67b6\u6784 \u6982\u8ff0 \u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp . \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp . \u4eff\u771f \u72b6\u6001 \u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h . \u63a7\u5236 \u5faa\u73af \u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u5185\u5b58 \u5730\u56fe \u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp . PBVT PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp . \u547d\u4ee4 \u6570\u7ec4 \u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5 \u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp . \u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5 \u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp . \u7b2c\u4e09 \u4e09\u9636 \u9636\u6bb5 \u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp . \u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp . \u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5 \u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp . \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 ) \u914d\u7f6e autopilot \u884c\u4e3a \u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False ) \u59d4\u6d3e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002 \u8fd0\u884c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 ) \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B \u591a\u91cd \u4eff\u771f \u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002 \u540c\u6b65 \u6a21\u5f0f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002 \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_1","text":"\u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_2","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002","title":"\u4ec0\u4e48 \u662f \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f"},{"location":"adv_traffic_manager/#_3","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002","title":"\u7ed3\u6784\u5316 \u8bbe\u8ba1"},{"location":"adv_traffic_manager/#_4","text":"\u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002","title":"\u7528\u6237 \u5b9a\u5236"},{"location":"adv_traffic_manager/#_5","text":"","title":"\u67b6\u6784"},{"location":"adv_traffic_manager/#_6","text":"\u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002","title":"\u6982\u8ff0"},{"location":"adv_traffic_manager/#_7","text":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp .","title":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406"},{"location":"adv_traffic_manager/#_8","text":"\u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp .","title":"\u8f66\u8f86 \u6ce8\u518c\u8868"},{"location":"adv_traffic_manager/#_9","text":"\u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h .","title":"\u4eff\u771f \u72b6\u6001"},{"location":"adv_traffic_manager/#_10","text":"\u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u63a7\u5236 \u5faa\u73af"},{"location":"adv_traffic_manager/#_11","text":"\u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp .","title":"\u5185\u5b58 \u5730\u56fe"},{"location":"adv_traffic_manager/#pbvt","text":"PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002","title":"PBVT"},{"location":"adv_traffic_manager/#pid","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp .","title":"PID \u63a7\u5236\u5668"},{"location":"adv_traffic_manager/#_12","text":"\u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u547d\u4ee4 \u6570\u7ec4"},{"location":"adv_traffic_manager/#_13","text":"","title":"\u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5"},{"location":"adv_traffic_manager/#1-","text":"\u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp .","title":"\u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5"},{"location":"adv_traffic_manager/#2-","text":"\u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp .","title":"\u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5"},{"location":"adv_traffic_manager/#-","text":"\u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp .","title":"\u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#4-","text":"\u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp .","title":"\u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5"},{"location":"adv_traffic_manager/#5-","text":"\u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp .","title":"\u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#_14","text":"","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_15","text":"TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002","title":"\u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f\u4e8b\u9879"},{"location":"adv_traffic_manager/#_16","text":"\u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 )","title":"\u521b\u5efa \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#autopilot","text":"\u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False )","title":"\u914d\u7f6e autopilot \u884c\u4e3a"},{"location":"adv_traffic_manager/#_17","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002","title":"\u59d4\u6d3e \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f"},{"location":"adv_traffic_manager/#_18","text":"TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002","title":"\u505c\u6b62 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_19","text":"\u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u786e\u5b9a\u6027 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_20","text":"\u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002","title":"\u6df7\u5408 \u7269\u7406\u6a21\u5f0f"},{"location":"adv_traffic_manager/#_21","text":"","title":"\u8fd0\u884c \u591a\u4e2a \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_22","text":"Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef \u548c \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_23","text":"\u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 )","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef"},{"location":"adv_traffic_manager/#_24","text":"\u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_25","text":"\u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client","title":"\u591a \u5ba2\u6237\u7aef \u4eff\u771f"},{"location":"adv_traffic_manager/#_26","text":"\u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B","title":"\u591a \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f"},{"location":"adv_traffic_manager/#_27","text":"\u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002","title":"\u591a\u91cd \u4eff\u771f"},{"location":"adv_traffic_manager/#_28","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_29","text":"\u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"bp_library/","text":"\u84dd \u56fe\u5e93 \u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002 \u63a7\u5236 \u63a7\u5236\u5668 controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 vehicle vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 walker walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_1","text":"\u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_2","text":"controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u63a7\u5236\u5668"},{"location":"bp_library/#_3","text":"sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u4f20\u611f\u5668"},{"location":"bp_library/#static","text":"static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539","title":"static"},{"location":"bp_library/#vehicle","text":"vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539","title":"vehicle"},{"location":"bp_library/#walker","text":"walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"walker"},{"location":"build_carla/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u6784\u5efa Carla"},{"location":"build_carla/#carla","text":"\u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa Carla"},{"location":"build_docker/","text":"Docker \u4e2d \u7684 Carla \u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002 \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla 1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#docker-carla","text":"\u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker/#carla","text":"1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla"},{"location":"build_docker/#_2","text":"\u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"build_docker_unreal/","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u8f6f\u4ef6 \u8981\u6c42 Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla \u6784\u5efa \u955c\u50cf \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name > \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#docker-carla","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#_1","text":"","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker_unreal/#_2","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_docker_unreal/#_3","text":"Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_docker_unreal/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name >","title":"\u6784\u5efa \u955c\u50cf"},{"location":"build_docker_unreal/#_5","text":"\u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u4e0b \u4e00\u6b65 \uff1a \u6253\u5305"},{"location":"build_faq/","text":"\u5e38\u95ee \u7684 \u95ee\u9898 \u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla ' \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . \u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002 Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 CarlaUE4 could not be compiled . Try rebuilding it from source manually . \u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \" \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 \u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002 Error C2440 , C2672 : compiler version . \u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform > \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002 Modules are missing or built with a different engine version . \u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002 \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value ) \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002 ImportError : DLL load failed : The specified module could not be found . \u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002 ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . 32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002 ImportError : No module named ' carla ' \u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002 \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002 \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_1","text":"\u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_2","text":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#linux","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" .","title":"Linux \u6784\u5efa"},{"location":"build_faq/#windows","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939","title":"Windows \u6784\u5efa"},{"location":"build_faq/#carla","text":"\u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla '","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#_3","text":"Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f","title":"\u5176\u4ed6"},{"location":"build_faq/#_4","text":"","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#carla_1","text":"\u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002","title":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8\u7a7a\u95f4 \u3002"},{"location":"build_faq/#carla_2","text":"Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002","title":"\u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002"},{"location":"build_faq/#linux_1","text":"","title":"Linux \u6784\u5efa"},{"location":"build_faq/#github-carlaue4sh","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002"},{"location":"build_faq/#make-launch-linux","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Linux \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#_5","text":"1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git","title":"\u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002"},{"location":"build_faq/#attributeerror-module-carla-has-no-attribute-client-when-running-a-script","text":"\u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs","title":"AttributeError : module ' carla ' has no attribute ' Client ' when running a script ."},{"location":"build_faq/#runtimeerror-rpcrpc_error-during-call-in-function-version","text":"\u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" ."},{"location":"build_faq/#windows_1","text":"","title":"Windows \u6784\u5efa"},{"location":"build_faq/#github-carlaue4exe","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002"},{"location":"build_faq/#carlaue4-could-not-be-compiled-try-rebuilding-it-from-source-manually","text":"\u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \"","title":"CarlaUE4 could not be compiled . Try rebuilding it from source manually ."},{"location":"build_faq/#cmake-cmake","text":"\u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002","title":"\u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002"},{"location":"build_faq/#error-c2440-c2672-compiler-version","text":"\u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform >","title":"Error C2440 , C2672 : compiler version ."},{"location":"build_faq/#make-launch-windows","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Windows \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#make-libintl3dll-libiconv2dll","text":"\u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002","title":"Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002"},{"location":"build_faq/#modules-are-missing-or-built-with-a-different-engine-version","text":"\u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002","title":"Modules are missing or built with a different engine version ."},{"location":"build_faq/#pythonapicarladist","text":"\u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002","title":"\u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6\u5939 \u3002"},{"location":"build_faq/#osm2odr-visualstudio","text":"CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt","title":"osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9"},{"location":"build_faq/#_6","text":"carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value )","title":"\u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9"},{"location":"build_faq/#osm2odrlib","text":"fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002","title":"\u94fe\u63a5 \u4e0d\u5230 osm2odr . lib"},{"location":"build_faq/#carla_3","text":"","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#fps","text":"\u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002"},{"location":"build_faq/#_7","text":"\u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002"},{"location":"build_faq/#_8","text":"\u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f\u5668 \u3002"},{"location":"build_faq/#carla_4","text":"NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba\u662f \u4e8c\u8fdb\u5236 \u8fd8\u662f \u6e90\u4ee3\u7801 \u6784\u5efa \u3002"},{"location":"build_faq/#importerror-dll-load-failed-the-specified-module-could-not-be-found","text":"\u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002","title":"ImportError : DLL load failed : The specified module could not be found ."},{"location":"build_faq/#importerror-dll-load-failed-while-importing-libcarla-1-is-not-a-valid-win32-app","text":"32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002","title":"ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app ."},{"location":"build_faq/#importerror-no-module-named-carla","text":"\u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002","title":"ImportError : No module named ' carla '"},{"location":"build_faq/#_9","text":"","title":"\u5176\u4ed6"},{"location":"build_faq/#fatal-error-versionh-has-been-modified-since-the-precompiled-header","text":"\u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor","title":"Fatal error : ' version . h ' has been modified since the precompiled header ."},{"location":"build_faq/#carla_5","text":"\u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002","title":"\u521b\u5efa Carla \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002"},{"location":"build_faq/#linux-windows-carla","text":"\u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002","title":"\u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f"},{"location":"build_faq/#carla_6","text":"\u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237\u7aef \u5e93 \uff1f"},{"location":"build_linux/","text":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get update && sudo apt - get install wget software - properties - common && sudo add - apt - repository ppa : ubuntu - toolchain - r / test && wget - O - https : / / apt . llvm . org / llvm - snapshot . gpg . key | sudo apt - key add - && sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD ) \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002 \u514b\u9686 Carla \u4ed3\u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002 \u5176\u4ed6 make \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \u5176\u4ed6 v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Linux \u4e0a \u7f16\u8bd1"},{"location":"build_linux/#linux","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa"},{"location":"build_linux/#_1","text":"","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_linux/#_2","text":"Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_linux/#_3","text":"Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get update && sudo apt - get install wget software - properties - common && sudo add - apt - repository ppa : ubuntu - toolchain - r / test && wget - O - https : / / apt . llvm . org / llvm - snapshot . gpg . key | sudo apt - key add - && sudo apt - add - repository \" deb http : / / apt . llvm . org / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_linux/#_4","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD )","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_linux/#carla","text":"\u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_linux/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u4ed3\u5e93"},{"location":"build_linux/#_5","text":"\u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_linux/#_6","text":"\u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883\u53d8\u91cf"},{"location":"build_linux/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002","title":"\u6784\u5efa Carla"},{"location":"build_linux/#make","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002","title":"\u5176\u4ed6 make \u547d\u4ee4"},{"location":"build_linux/#_7","text":"v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5176\u4ed6"},{"location":"build_system/","text":"\u6784\u5efa \u7cfb\u7edf \u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002 \u8bbe\u7f6e \u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ ) LibCarla \u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a Required by Carla plugin PythonAPI CarlaUE4 \u548c Carla \u63d2\u4ef6 \u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002 PythonAPI 0.9 . 12 + \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"\u7f16\u8bd1\u7cfb\u7edf"},{"location":"build_system/#_1","text":"\u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002","title":"\u6784\u5efa \u7cfb\u7edf"},{"location":"build_system/#_2","text":"\u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ )","title":"\u8bbe\u7f6e"},{"location":"build_system/#libcarla","text":"\u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a Required by Carla plugin PythonAPI","title":"LibCarla"},{"location":"build_system/#carlaue4-carla","text":"\u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002","title":"CarlaUE4 \u548c Carla \u63d2\u4ef6"},{"location":"build_system/#pythonapi","text":"","title":"PythonAPI"},{"location":"build_system/#0912","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"0.9 . 12 + \u7248\u672c"},{"location":"build_system/#0912_1","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c"},{"location":"build_update/","text":"\u66f4\u65b0 Carla \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master \u6e05\u7406 \u6784\u5efa \u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean \u4ece origin \u62c9\u53d6 \u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master \u4e0b\u8f7d \u8d44\u4ea7 Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch \u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7 Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"Carla \u66f4\u65b0"},{"location":"build_update/#carla","text":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b","title":"\u66f4\u65b0 Carla"},{"location":"build_update/#_1","text":"\u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla","title":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981"},{"location":"build_update/#_2","text":"\u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build","title":"\u83b7\u53d6 \u6700\u65b0 \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c"},{"location":"build_update/#linux-windows","text":"\u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master","title":"\u66f4\u65b0 Linux \u548c Windows \u6784\u5efa"},{"location":"build_update/#_3","text":"\u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean","title":"\u6e05\u7406 \u6784\u5efa"},{"location":"build_update/#origin","text":"\u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master","title":"\u4ece origin \u62c9\u53d6"},{"location":"build_update/#_4","text":"Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002","title":"\u4e0b\u8f7d \u8d44\u4ea7"},{"location":"build_update/#_5","text":"\u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch","title":"\u542f\u52a8 \u670d\u52a1\u5668"},{"location":"build_update/#_6","text":"Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"\u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7"},{"location":"build_windows/","text":"Windows \u4e0b \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u7cfb\u7edf \u8981\u6c42 64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002 Python \u4f9d\u8d56 \u9879 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002 \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u5b58\u50a8 \u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf \u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002 \u5176\u4ed6 \u6784\u5efa \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6784\u5efa \u4e86 Carla \uff0c \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u4e86\u89e3 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Windows \u4e0a \u7f16\u8bd1"},{"location":"build_windows/#windows","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Windows \u4e0b \u7684 \u6784\u5efa"},{"location":"build_windows/#_1","text":"\u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_windows/#_2","text":"64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_windows/#_3","text":"","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_windows/#_4","text":"CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002","title":"\u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#python","text":"\u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel","title":"Python \u4f9d\u8d56 \u9879"},{"location":"build_windows/#_5","text":"","title":"\u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#visual-studio-2019","text":"\u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002","title":"Visual Studio 2019"},{"location":"build_windows/#_6","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_windows/#carla","text":"","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_windows/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u5b58\u50a8 \u5e93"},{"location":"build_windows/#_7","text":"\u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_windows/#_8","text":"\u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf"},{"location":"build_windows/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002","title":"\u6784\u5efa Carla"},{"location":"build_windows/#_9","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \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":"\u5176\u4ed6 \u6784\u5efa \u547d\u4ee4"},{"location":"carla_ackermann_control/","text":"Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u914d\u7f6e \u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002 \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#carla","text":"carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#_1","text":"\u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002","title":"\u914d\u7f6e"},{"location":"carla_ackermann_control/#_2","text":"\u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10","title":"\u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f"},{"location":"carla_ackermann_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ackermann_control/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005","title":"\u8ba2\u9605"},{"location":"carla_ackermann_control/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#carla","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002","title":"\u9700\u6c42"},{"location":"carla_ad_agent/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ad_agent/#_2","text":"","title":"\u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9"},{"location":"carla_ad_agent/#_3","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_5","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/#_6","text":"","title":"\u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9"},{"location":"carla_ad_agent/#_7","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_8","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_9","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"\u53d1\u5e03"},{"location":"carla_ad_demo/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner > \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py \u573a\u666f \u6267\u884c \u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#carla","text":"\u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#_1","text":"\u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner >","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ad_demo/#_2","text":"","title":"\u8fd0\u884c \u6f14\u793a"},{"location":"carla_ad_demo/#_3","text":"\u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py","title":"\u968f\u673a \u8def\u7ebf"},{"location":"carla_ad_demo/#_4","text":"\u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"\u573a\u666f \u6267\u884c"},{"location":"carla_manual_control/","text":"Carla \u624b\u52a8 \u63a7\u5236 CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd0\u884c \u5305 \u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#carla","text":"CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u9700\u6c42"},{"location":"carla_manual_control/#_2","text":"\u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py","title":"\u8fd0\u884c \u5305"},{"location":"carla_ros_scenario_runner/","text":"Carla ROS Scenario Runner The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect \u4f7f\u7528 ROS Scenario Runner ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002 \u8fd0\u884c ROS Scenario Runner 1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#carla-ros-scenario-runner","text":"The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#_1","text":"\u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner","text":"ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002","title":"\u4f7f\u7528 ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner_1","text":"1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \"","title":"\u8fd0\u884c ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ros_scenario_runner/#_2","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002","title":"\u670d\u52a1"},{"location":"carla_ros_scenario_runner/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_spawn_objects/","text":"Carla \u751f\u6210 \u5bf9\u8c61 carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json \u521b\u5efa \u914d\u7f6e \u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u751f\u6210 \u8f66\u8f86 \u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , } \u8f66\u8f86 \u518d \u751f\u6210 \u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#carla","text":"carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#_1","text":"\u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json","title":"\u914d\u7f6e \u548c \u4f20\u611f\u5668 \u8bbe\u7f6e"},{"location":"carla_spawn_objects/#_2","text":"\u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002","title":"\u521b\u5efa \u914d\u7f6e"},{"location":"carla_spawn_objects/#_3","text":"\u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , }","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"carla_spawn_objects/#_4","text":"\u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002","title":"\u8f66\u8f86 \u518d \u751f\u6210"},{"location":"carla_spawn_objects/#_5","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002","title":"\u751f\u6210 \u4f20\u611f\u5668"},{"location":"carla_spawn_objects/#_6","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"\u5c06 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a"},{"location":"carla_twist_to_control/","text":"Carla \u626d\u8f6c \u63a7\u5236 carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#carla","text":"carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_twist_to_control/#_1","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002","title":"\u8ba2\u9605"},{"location":"carla_twist_to_control/#_2","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"\u53d1\u5e03"},{"location":"carla_waypoint/","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py \u8bbe\u5b9a \u76ee\u6807 \u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#carla","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_1","text":"\u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py","title":"\u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_2","text":"\u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002","title":"\u8bbe\u5b9a \u76ee\u6807"},{"location":"carla_waypoint/#_3","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_waypoint/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf","title":"\u53d1\u5e03"},{"location":"carla_waypoint/#_5","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"\u670d\u52a1"},{"location":"catalogue/","text":"Carla \u76ee\u5f55 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55 \u5730\u56fe Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u8f66\u8f86 Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002 \u884c\u4eba Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002 \u9053\u5177 Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002","title":"\u5730\u56fe"},{"location":"catalogue/#_2","text":"Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002","title":"\u8f66\u8f86"},{"location":"catalogue/#_3","text":"Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002","title":"\u884c\u4eba"},{"location":"catalogue/#_4","text":"Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"\u9053\u5177"},{"location":"catalogue_pedestrians/","text":"\u884c\u4eba \u76ee\u5f55 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2 \u5c0f\u5b69 \u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1 \u8b66\u5bdf \u8b66\u5bdf - 1 \u8b66\u5bdf - 2 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0001 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0005 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0006 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0007 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5 \u84dd\u56fe ID : walker . pedestrian.0008 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0004 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0003 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0002 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0015 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0019 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0016 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0017 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0026 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0018 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0021 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0020 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0023 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0022 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0024 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0025 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0027 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0029 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0028 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0041 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0040 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0033 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0031 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0034 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0038 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0035 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0036 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0037 \u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0039 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0042 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0043 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0044 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0047 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0046 Children Child pedestrian 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0011 Child pedestrian 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0010 Child pedestrian 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0009 Child pedestrian 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0014 Child pedestrian 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0013 Child pedestrian 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0012 Child pedestrian 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0048 Child pedestrian 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0049 \u8b66\u5bdf \u8b66\u5bdf 1 \u84dd\u56fe ID : walker . pedestrian.0030 \u8b66\u5bdf 2 \u84dd\u56fe ID : walker . pedestrian.0032","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_1","text":"","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_2","text":"\u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#_3","text":"\u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1","title":"\u5c0f\u5b69"},{"location":"catalogue_pedestrians/#_4","text":"\u8b66\u5bdf - 1 \u8b66\u5bdf - 2","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#_5","text":"","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0001","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0005","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0006","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#1-4","text":"\u84dd\u56fe ID : walker . pedestrian.0007","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#1-5","text":"\u84dd\u56fe ID : walker . pedestrian.0008","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5"},{"location":"catalogue_pedestrians/#2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0004","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0003","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0002","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0015","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#3-2","text":"\u84dd\u56fe ID : walker . pedestrian.0019","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0016","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#4-2","text":"\u84dd\u56fe ID : walker . pedestrian.0017","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#5-1","text":"\u84dd\u56fe ID : walker . pedestrian.0026","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#5-2","text":"\u84dd\u56fe ID : walker . pedestrian.0018","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#6-1","text":"\u84dd\u56fe ID : walker . pedestrian.0021","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#6-2","text":"\u84dd\u56fe ID : walker . pedestrian.0020","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#7-1","text":"\u84dd\u56fe ID : walker . pedestrian.0023","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#7-2","text":"\u84dd\u56fe ID : walker . pedestrian.0022","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#8-1","text":"\u84dd\u56fe ID : walker . pedestrian.0024","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#8-2","text":"\u84dd\u56fe ID : walker . pedestrian.0025","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-1","text":"\u84dd\u56fe ID : walker . pedestrian.0027","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#9-2","text":"\u84dd\u56fe ID : walker . pedestrian.0029","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-3","text":"\u84dd\u56fe ID : walker . pedestrian.0028","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-1","text":"\u84dd\u56fe ID : walker . pedestrian.0041","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#10-2","text":"\u84dd\u56fe ID : walker . pedestrian.0040","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#10-3","text":"\u84dd\u56fe ID : walker . pedestrian.0033","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-4","text":"\u84dd\u56fe ID : walker . pedestrian.0031","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#11-1","text":"\u84dd\u56fe ID : walker . pedestrian.0034","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#11-2","text":"\u84dd\u56fe ID : walker . pedestrian.0038","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-1","text":"\u84dd\u56fe ID : walker . pedestrian.0035","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#12-2","text":"\u84dd\u56fe ID : walker . pedestrian.0036","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-3","text":"\u84dd\u56fe ID : walker . pedestrian.0037","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#13-1","text":"\u84dd\u56fe ID : walker . pedestrian.0039","title":"\u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-1","text":"\u84dd\u56fe ID : walker . pedestrian.0042","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-2","text":"\u84dd\u56fe ID : walker . pedestrian.0043","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#14-3","text":"\u84dd\u56fe ID : walker . pedestrian.0044","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#15-1","text":"\u84dd\u56fe ID : walker . pedestrian.0047","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#15-2","text":"\u84dd\u56fe ID : walker . pedestrian.0046","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#children","text":"","title":"Children"},{"location":"catalogue_pedestrians/#child-pedestrian-1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0011","title":"Child pedestrian 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0010","title":"Child pedestrian 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0009","title":"Child pedestrian 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0014","title":"Child pedestrian 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0013","title":"Child pedestrian 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0012","title":"Child pedestrian 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0048","title":"Child pedestrian 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0049","title":"Child pedestrian 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#_6","text":"","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#1","text":"\u84dd\u56fe ID : walker . pedestrian.0030","title":"\u8b66\u5bdf 1"},{"location":"catalogue_pedestrians/#2","text":"\u84dd\u56fe ID : walker . pedestrian.0032","title":"\u8b66\u5bdf 2"},{"location":"catalogue_props/","text":"\u9053\u5177 \u76ee\u5f55 \u5bb9\u5668 \u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03 \u5783\u573e \u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05 \u516c\u56ed / \u82b1\u56ed \u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08 \u4e2a\u4eba \u7684 \u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305 \u8def \u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u516c\u7528 \u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668 \u5bb9\u5668 \u6876 \u84dd\u56fe ID : static . prop . barrel \u5783\u573e \u5783\u573e\u6876 \u84dd\u56fe ID : static . prop . bin \u5e03\u5236 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . clothcontainer \u5783\u573e \u5783\u573e\u7bb1 \u84dd\u56fe ID : static . prop . container \u73bb\u7483 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . glasscontainer \u76d2\u5b50 01 \u84dd\u56fe ID : static . prop . box01 \u76d2\u5b50 02 \u84dd\u56fe ID : static . prop . box02 \u76d2\u5b50 03 \u84dd\u56fe ID : static . prop . box03 \u6298\u75d5 \u76d2 01 \u84dd\u56fe ID : static . prop . creasedbox01 \u6298\u75d5 \u76d2 02 \u84dd\u56fe ID : static . prop . creasedbox02 \u6298\u75d5 \u76d2 03 \u84dd\u56fe ID : static . prop . creasedbox03 \u5783\u573e \u5783\u573e \u5783\u573e\u888b \u84dd\u56fe ID : static . prop . trashbag \u53ef\u4e50 \u7f50 \u84dd\u56fe ID : static . prop . colacan \u5783\u573e 01 \u84dd\u56fe ID : static . prop . garbage01 \u5783\u573e 02 \u84dd\u56fe ID : static . prop . garbage02 \u5783\u573e 03 \u84dd\u56fe ID : static . prop . garbage03 \u5783\u573e 04 \u84dd\u56fe ID : static . prop . garbage04 \u5783\u573e 05 \u84dd\u56fe ID : static . prop . garbage05 \u5783\u573e 06 \u84dd\u56fe ID : static . prop . garbage06 \u5783\u573e \u5e73\u53f0 01 \u84dd\u56fe ID : static . prop . platformgarbage01 \u5783\u573e \u5783\u573e\u6876 01 \u84dd\u56fe ID : static . prop . trashcan01 \u5783\u573e \u5783\u573e\u6876 02 \u84dd\u56fe ID : static . prop . trashcan02 \u5783\u573e \u5783\u573e\u6876 03 \u84dd\u56fe ID : static . prop . trashcan03 \u5783\u573e \u5783\u573e\u6876 04 \u84dd\u56fe ID : static . prop . trashcan04 \u5783\u573e \u5783\u573e\u6876 05 \u84dd\u56fe ID : static . prop . trashcan05 \u516c\u56ed / \u82b1\u56ed \u957f\u51f3 03 \u84dd\u56fe ID : static . prop . bench03 \u5ead\u9662 \u5ead\u9662\u706f \u84dd\u56fe ID : static . prop . gardenlamp \u51c9\u68da \u84dd\u56fe ID : static . prop . pergola \u5851\u6599 \u6905 \u84dd\u56fe ID : static . prop . plasticchair \u5851\u6599 \u684c \u84dd\u56fe ID : static . prop . plastictable \u6ed1\u68af \u84dd\u56fe ID : static . prop . slide \u79cb\u5343 \u84dd\u56fe ID : static . prop . swing \u79cb\u5343 \u6c99\u53d1 \u84dd\u56fe ID : static . prop . swingcouch \u684c\u5b50 \u84dd\u56fe ID : static . prop . table \u8e66\u5e8a \u84dd\u56fe ID : static . prop . trampoline \u70e7\u70e4 \u67b6 \u84dd\u56fe ID : static . prop . barbeque \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u84dd\u56fe ID : static . prop . clothesline \u72d7\u7a9d \u84dd\u56fe ID : static . prop . doghouse \u4f8f\u5112 \u84dd\u56fe ID : static . prop . gnome \u55b7\u58f6 \u84dd\u56fe ID : static . prop . wateringcan \u5e72\u8349 \u6346 \u84dd\u56fe ID : static . prop . haybale \u5e72\u8349 \u6346 \u5907\u7528 \u84dd\u56fe ID : static . prop . haybalelb \u82b1\u76c6 01 \u84dd\u56fe ID : static . prop . plantpot01 \u82b1\u76c6 02 \u84dd\u56fe ID : static . prop . plantpot02 \u82b1\u76c6 03 \u84dd\u56fe ID : static . prop . plantpot03 \u82b1\u76c6 04 \u84dd\u56fe ID : static . prop . plantpot04 \u82b1\u76c6 05 \u84dd\u56fe ID : static . prop . plantpot05 \u82b1\u76c6 06 \u84dd\u56fe ID : static . prop . plantpot06 \u82b1\u76c6 07 \u84dd\u56fe ID : static . prop . plantpot07 \u82b1\u76c6 08 \u84dd\u56fe ID : static . prop . plantpot08 \u4e2a\u4eba \u7684 \u5851\u6599 \u5851\u6599\u888b \u84dd\u56fe ID : static . prop . plasticbag \u8d2d\u7269 \u8d2d\u7269\u888b \u84dd\u56fe ID : static . prop . shoppingbag \u8d2d\u7269 \u8d2d\u7269\u8f66 \u84dd\u56fe ID : static . prop . shoppingcart \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u84dd\u56fe ID : static . prop . shoppingtrolley \u516c\u6587 \u516c\u6587\u5305 \u84dd\u56fe ID : static . prop . briefcase \u5409\u4ed6 \u76d2 \u84dd\u56fe ID : static . prop . guitarcase \u65c5\u884c \u65c5\u884c\u7bb1 \u84dd\u56fe ID : static . prop . travelcase \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . bike helmet \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . motorhelmet \u624b\u673a \u84dd\u56fe ID : static . prop . mobile \u94b1\u5305 \u84dd\u56fe ID : static . prop . purse \u8def \u8857\u9053 \u62a4\u680f \u84dd\u56fe ID : static . prop . streetbarrier \u5efa\u7b51 \u9525\u4f53 \u84dd\u56fe ID : static . prop . constructioncone \u4ea4\u901a \u9525 01 \u84dd\u56fe ID : static . prop . trafficcone01 \u4ea4\u901a \u9525 02 \u84dd\u56fe ID : static . prop . trafficcone02 \u94c1\u677f \u84dd\u56fe ID : static . prop . ironplank \u65bd\u5de5 \u8b66\u793a \u84dd\u56fe ID : static . prop . warningconstruction \u788e\u74e6 01 \u84dd\u56fe ID : static . prop . brokentile01 \u788e\u74e6 02 \u84dd\u56fe ID : static . prop . brokentile02 \u788e\u74e6 03 \u84dd\u56fe ID : static . prop . brokentile03 \u788e\u74e6 04 \u84dd\u56fe ID : static . prop . brokentile04 \u6c61\u57a2 / \u788e\u7247 01 \u84dd\u56fe ID : static . prop . dirtdebris01 \u6c61\u57a2 / \u788e\u7247 02 \u84dd\u56fe ID : static . prop . dirtdebris02 \u6c61\u57a2 / \u788e\u7247 03 \u84dd\u56fe ID : static . prop . dirtdebris03 \u4ea4\u901a \u8b66\u544a \u84dd\u56fe ID : static . prop . trafficwarning \u4e8b\u6545 \u8b66\u544a \u84dd\u56fe ID : static . prop . warningaccident \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u94fe \u6805\u680f \u84dd\u56fe ID : static . prop . chainbarrier \u94fe \u6805\u680f \u672b\u7aef \u84dd\u56fe ID : static . prop . chainbarrierend \u957f\u51f3 01 \u84dd\u56fe ID : static . prop . bench01 \u957f\u51f3 02 \u84dd\u56fe ID : static . prop . bench02 \u9910\u8f66 \u84dd\u56fe ID : static . prop . foodcart \u4fe1\u606f \u4ead 01 \u84dd\u56fe ID : static . prop . kiosk _ 01 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . fountain \u5730 \u56fe\u8868 \u84dd\u56fe ID : static . prop . maptable \u5e7f\u544a \u84dd\u56fe ID : static . prop . advertisement \u8def\u724c \u84dd\u56fe ID : static . prop . streetsign \u8def\u724c 01 \u84dd\u56fe ID : static . prop . streetsign01 \u8def\u724c 04 \u84dd\u56fe ID : static . prop . streetsign04 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstop \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstoplb \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u84dd\u56fe ID : static . prop . atm \u90ae\u7bb1 \u84dd\u56fe ID : static . prop . mailbox \u8857\u5934 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . streetfountain \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u84dd\u56fe ID : static . prop . vendingmachine \u516c\u7528 \u6821\u51c6 \u6821\u51c6\u5668 \u84dd\u56fe ID : static . prop . calibrator","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_1","text":"","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_2","text":"\u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_3","text":"\u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05","title":"\u5783\u573e"},{"location":"catalogue_props/#_4","text":"\u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#_5","text":"\u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_6","text":"\u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a","title":"\u8def"},{"location":"catalogue_props/#_7","text":"\u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_8","text":"\u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668","title":"\u516c\u7528"},{"location":"catalogue_props/#_9","text":"","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_10","text":"\u84dd\u56fe ID : static . prop . barrel","title":"\u6876"},{"location":"catalogue_props/#_11","text":"\u84dd\u56fe ID : static . prop . bin","title":"\u5783\u573e\u6876"},{"location":"catalogue_props/#_12","text":"\u84dd\u56fe ID : static . prop . clothcontainer","title":"\u5e03\u5236 \u5bb9\u5668"},{"location":"catalogue_props/#_13","text":"\u84dd\u56fe ID : static . prop . container","title":"\u5783\u573e\u7bb1"},{"location":"catalogue_props/#_14","text":"\u84dd\u56fe ID : static . prop . glasscontainer","title":"\u73bb\u7483 \u5bb9\u5668"},{"location":"catalogue_props/#01","text":"\u84dd\u56fe ID : static . prop . box01","title":"\u76d2\u5b50 01"},{"location":"catalogue_props/#02","text":"\u84dd\u56fe ID : static . prop . box02","title":"\u76d2\u5b50 02"},{"location":"catalogue_props/#03","text":"\u84dd\u56fe ID : static . prop . box03","title":"\u76d2\u5b50 03"},{"location":"catalogue_props/#01_1","text":"\u84dd\u56fe ID : static . prop . creasedbox01","title":"\u6298\u75d5 \u76d2 01"},{"location":"catalogue_props/#02_1","text":"\u84dd\u56fe ID : static . prop . creasedbox02","title":"\u6298\u75d5 \u76d2 02"},{"location":"catalogue_props/#03_1","text":"\u84dd\u56fe ID : static . prop . creasedbox03","title":"\u6298\u75d5 \u76d2 03"},{"location":"catalogue_props/#_15","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_16","text":"\u84dd\u56fe ID : static . prop . trashbag","title":"\u5783\u573e\u888b"},{"location":"catalogue_props/#_17","text":"\u84dd\u56fe ID : static . prop . colacan","title":"\u53ef\u4e50 \u7f50"},{"location":"catalogue_props/#01_2","text":"\u84dd\u56fe ID : static . prop . garbage01","title":"\u5783\u573e 01"},{"location":"catalogue_props/#02_2","text":"\u84dd\u56fe ID : static . prop . garbage02","title":"\u5783\u573e 02"},{"location":"catalogue_props/#03_2","text":"\u84dd\u56fe ID : static . prop . garbage03","title":"\u5783\u573e 03"},{"location":"catalogue_props/#04","text":"\u84dd\u56fe ID : static . prop . garbage04","title":"\u5783\u573e 04"},{"location":"catalogue_props/#05","text":"\u84dd\u56fe ID : static . prop . garbage05","title":"\u5783\u573e 05"},{"location":"catalogue_props/#06","text":"\u84dd\u56fe ID : static . prop . garbage06","title":"\u5783\u573e 06"},{"location":"catalogue_props/#01_3","text":"\u84dd\u56fe ID : static . prop . platformgarbage01","title":"\u5783\u573e \u5e73\u53f0 01"},{"location":"catalogue_props/#01_4","text":"\u84dd\u56fe ID : static . prop . trashcan01","title":"\u5783\u573e\u6876 01"},{"location":"catalogue_props/#02_3","text":"\u84dd\u56fe ID : static . prop . trashcan02","title":"\u5783\u573e\u6876 02"},{"location":"catalogue_props/#03_3","text":"\u84dd\u56fe ID : static . prop . trashcan03","title":"\u5783\u573e\u6876 03"},{"location":"catalogue_props/#04_1","text":"\u84dd\u56fe ID : static . prop . trashcan04","title":"\u5783\u573e\u6876 04"},{"location":"catalogue_props/#05_1","text":"\u84dd\u56fe ID : static . prop . trashcan05","title":"\u5783\u573e\u6876 05"},{"location":"catalogue_props/#_18","text":"","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#03_4","text":"\u84dd\u56fe ID : static . prop . bench03","title":"\u957f\u51f3 03"},{"location":"catalogue_props/#_19","text":"\u84dd\u56fe ID : static . prop . gardenlamp","title":"\u5ead\u9662\u706f"},{"location":"catalogue_props/#_20","text":"\u84dd\u56fe ID : static . prop . pergola","title":"\u51c9\u68da"},{"location":"catalogue_props/#_21","text":"\u84dd\u56fe ID : static . prop . plasticchair","title":"\u5851\u6599 \u6905"},{"location":"catalogue_props/#_22","text":"\u84dd\u56fe ID : static . prop . plastictable","title":"\u5851\u6599 \u684c"},{"location":"catalogue_props/#_23","text":"\u84dd\u56fe ID : static . prop . slide","title":"\u6ed1\u68af"},{"location":"catalogue_props/#_24","text":"\u84dd\u56fe ID : static . prop . swing","title":"\u79cb\u5343"},{"location":"catalogue_props/#_25","text":"\u84dd\u56fe ID : static . prop . swingcouch","title":"\u79cb\u5343 \u6c99\u53d1"},{"location":"catalogue_props/#_26","text":"\u84dd\u56fe ID : static . prop . table","title":"\u684c\u5b50"},{"location":"catalogue_props/#_27","text":"\u84dd\u56fe ID : static . prop . trampoline","title":"\u8e66\u5e8a"},{"location":"catalogue_props/#_28","text":"\u84dd\u56fe ID : static . prop . barbeque","title":"\u70e7\u70e4 \u67b6"},{"location":"catalogue_props/#_29","text":"\u84dd\u56fe ID : static . prop . clothesline","title":"\u667e\u8863\u7ef3"},{"location":"catalogue_props/#_30","text":"\u84dd\u56fe ID : static . prop . doghouse","title":"\u72d7\u7a9d"},{"location":"catalogue_props/#_31","text":"\u84dd\u56fe ID : static . prop . gnome","title":"\u4f8f\u5112"},{"location":"catalogue_props/#_32","text":"\u84dd\u56fe ID : static . prop . wateringcan","title":"\u55b7\u58f6"},{"location":"catalogue_props/#_33","text":"\u84dd\u56fe ID : static . prop . haybale","title":"\u5e72\u8349 \u6346"},{"location":"catalogue_props/#_34","text":"\u84dd\u56fe ID : static . prop . haybalelb","title":"\u5e72\u8349 \u6346 \u5907\u7528"},{"location":"catalogue_props/#01_5","text":"\u84dd\u56fe ID : static . prop . plantpot01","title":"\u82b1\u76c6 01"},{"location":"catalogue_props/#02_4","text":"\u84dd\u56fe ID : static . prop . plantpot02","title":"\u82b1\u76c6 02"},{"location":"catalogue_props/#03_5","text":"\u84dd\u56fe ID : static . prop . plantpot03","title":"\u82b1\u76c6 03"},{"location":"catalogue_props/#04_2","text":"\u84dd\u56fe ID : static . prop . plantpot04","title":"\u82b1\u76c6 04"},{"location":"catalogue_props/#05_2","text":"\u84dd\u56fe ID : static . prop . plantpot05","title":"\u82b1\u76c6 05"},{"location":"catalogue_props/#06_1","text":"\u84dd\u56fe ID : static . prop . plantpot06","title":"\u82b1\u76c6 06"},{"location":"catalogue_props/#07","text":"\u84dd\u56fe ID : static . prop . plantpot07","title":"\u82b1\u76c6 07"},{"location":"catalogue_props/#08","text":"\u84dd\u56fe ID : static . prop . plantpot08","title":"\u82b1\u76c6 08"},{"location":"catalogue_props/#_35","text":"","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_36","text":"\u84dd\u56fe ID : static . prop . plasticbag","title":"\u5851\u6599\u888b"},{"location":"catalogue_props/#_37","text":"\u84dd\u56fe ID : static . prop . shoppingbag","title":"\u8d2d\u7269\u888b"},{"location":"catalogue_props/#_38","text":"\u84dd\u56fe ID : static . prop . shoppingcart","title":"\u8d2d\u7269\u8f66"},{"location":"catalogue_props/#_39","text":"\u84dd\u56fe ID : static . prop . shoppingtrolley","title":"\u8d2d\u7269 \u624b\u63a8\u8f66"},{"location":"catalogue_props/#_40","text":"\u84dd\u56fe ID : static . prop . briefcase","title":"\u516c\u6587\u5305"},{"location":"catalogue_props/#_41","text":"\u84dd\u56fe ID : static . prop . guitarcase","title":"\u5409\u4ed6 \u76d2"},{"location":"catalogue_props/#_42","text":"\u84dd\u56fe ID : static . prop . travelcase","title":"\u65c5\u884c\u7bb1"},{"location":"catalogue_props/#_43","text":"\u84dd\u56fe ID : static . prop . bike helmet","title":"\u81ea\u884c\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_44","text":"\u84dd\u56fe ID : static . prop . motorhelmet","title":"\u6469\u6258\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_45","text":"\u84dd\u56fe ID : static . prop . mobile","title":"\u624b\u673a"},{"location":"catalogue_props/#_46","text":"\u84dd\u56fe ID : static . prop . purse","title":"\u94b1\u5305"},{"location":"catalogue_props/#_47","text":"","title":"\u8def"},{"location":"catalogue_props/#_48","text":"\u84dd\u56fe ID : static . prop . streetbarrier","title":"\u8857\u9053 \u62a4\u680f"},{"location":"catalogue_props/#_49","text":"\u84dd\u56fe ID : static . prop . constructioncone","title":"\u5efa\u7b51 \u9525\u4f53"},{"location":"catalogue_props/#01_6","text":"\u84dd\u56fe ID : static . prop . trafficcone01","title":"\u4ea4\u901a \u9525 01"},{"location":"catalogue_props/#02_5","text":"\u84dd\u56fe ID : static . prop . trafficcone02","title":"\u4ea4\u901a \u9525 02"},{"location":"catalogue_props/#_50","text":"\u84dd\u56fe ID : static . prop . ironplank","title":"\u94c1\u677f"},{"location":"catalogue_props/#_51","text":"\u84dd\u56fe ID : static . prop . warningconstruction","title":"\u65bd\u5de5 \u8b66\u793a"},{"location":"catalogue_props/#01_7","text":"\u84dd\u56fe ID : static . prop . brokentile01","title":"\u788e\u74e6 01"},{"location":"catalogue_props/#02_6","text":"\u84dd\u56fe ID : static . prop . brokentile02","title":"\u788e\u74e6 02"},{"location":"catalogue_props/#03_6","text":"\u84dd\u56fe ID : static . prop . brokentile03","title":"\u788e\u74e6 03"},{"location":"catalogue_props/#04_3","text":"\u84dd\u56fe ID : static . prop . brokentile04","title":"\u788e\u74e6 04"},{"location":"catalogue_props/#01_8","text":"\u84dd\u56fe ID : static . prop . dirtdebris01","title":"\u6c61\u57a2 / \u788e\u7247 01"},{"location":"catalogue_props/#02_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris02","title":"\u6c61\u57a2 / \u788e\u7247 02"},{"location":"catalogue_props/#03_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris03","title":"\u6c61\u57a2 / \u788e\u7247 03"},{"location":"catalogue_props/#_52","text":"\u84dd\u56fe ID : static . prop . trafficwarning","title":"\u4ea4\u901a \u8b66\u544a"},{"location":"catalogue_props/#_53","text":"\u84dd\u56fe ID : static . prop . warningaccident","title":"\u4e8b\u6545 \u8b66\u544a"},{"location":"catalogue_props/#_54","text":"","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_55","text":"\u84dd\u56fe ID : static . prop . chainbarrier","title":"\u94fe \u6805\u680f"},{"location":"catalogue_props/#_56","text":"\u84dd\u56fe ID : static . prop . chainbarrierend","title":"\u94fe \u6805\u680f \u672b\u7aef"},{"location":"catalogue_props/#01_9","text":"\u84dd\u56fe ID : static . prop . bench01","title":"\u957f\u51f3 01"},{"location":"catalogue_props/#02_8","text":"\u84dd\u56fe ID : static . prop . bench02","title":"\u957f\u51f3 02"},{"location":"catalogue_props/#_57","text":"\u84dd\u56fe ID : static . prop . foodcart","title":"\u9910\u8f66"},{"location":"catalogue_props/#01_10","text":"\u84dd\u56fe ID : static . prop . kiosk _ 01","title":"\u4fe1\u606f \u4ead 01"},{"location":"catalogue_props/#_58","text":"\u84dd\u56fe ID : static . prop . fountain","title":"\u55b7\u6cc9"},{"location":"catalogue_props/#_59","text":"\u84dd\u56fe ID : static . prop . maptable","title":"\u5730 \u56fe\u8868"},{"location":"catalogue_props/#_60","text":"\u84dd\u56fe ID : static . prop . advertisement","title":"\u5e7f\u544a"},{"location":"catalogue_props/#_61","text":"\u84dd\u56fe ID : static . prop . streetsign","title":"\u8def\u724c"},{"location":"catalogue_props/#01_11","text":"\u84dd\u56fe ID : static . prop . streetsign01","title":"\u8def\u724c 01"},{"location":"catalogue_props/#04_4","text":"\u84dd\u56fe ID : static . prop . streetsign04","title":"\u8def\u724c 04"},{"location":"catalogue_props/#_62","text":"\u84dd\u56fe ID : static . prop . busstop","title":"\u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_63","text":"\u84dd\u56fe ID : static . prop . busstoplb","title":"\u5907\u7528 \u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_64","text":"\u84dd\u56fe ID : static . prop . atm","title":"\u81ea\u52a8 \u63d0\u6b3e\u673a"},{"location":"catalogue_props/#_65","text":"\u84dd\u56fe ID : static . prop . mailbox","title":"\u90ae\u7bb1"},{"location":"catalogue_props/#_66","text":"\u84dd\u56fe ID : static . prop . streetfountain","title":"\u8857\u5934 \u55b7\u6cc9"},{"location":"catalogue_props/#_67","text":"\u84dd\u56fe ID : static . prop . vendingmachine","title":"\u552e\u8d27\u673a"},{"location":"catalogue_props/#_68","text":"","title":"\u516c\u7528"},{"location":"catalogue_props/#_69","text":"\u84dd\u56fe ID : static . prop . calibrator","title":"\u6821\u51c6\u5668"},{"location":"catalogue_vehicles/","text":"\u8f66\u8f86 \u76ee\u5f55 \u7b2c 2 \u4ee3 \u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u7b2c\u4e00 \u4e00\u4ee3 \u7b2c\u4e00\u4ee3 \u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets \u68c0\u67e5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86 \u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( ) \u8f66 \u5965\u8fea - A2 \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - E - Tron \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - TT \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u4f5b\u5170 - Impala \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u94c1\u9f99 - C3 \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u9053\u5947 - Police Charger \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Police Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - Mustang \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2017 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2020 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S 2021 \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5c3c\u6851 - Micra \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True Seat - Leon \u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Toyota - Prius \u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5361\u8f66 Carla Motors - CarlaCola \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - Firetruck \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5927\u4f17 - T2 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u4f17 - T2 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider \u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Kawasaki - Ninja \u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Vespa - ZX 125 \u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Yamaha - YZF \u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century \u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Gazelle - Omafiets \u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Catalogue vehicles"},{"location":"catalogue_vehicles/#_1","text":"","title":"\u8f66\u8f86 \u76ee\u5f55"},{"location":"catalogue_vehicles/#2","text":"\u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa","title":"\u7b2c 2 \u4ee3"},{"location":"catalogue_vehicles/#_2","text":"\u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets","title":"\u7b2c\u4e00\u4ee3"},{"location":"catalogue_vehicles/#_3","text":"\u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( )","title":"\u68c0\u67e5 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86"},{"location":"catalogue_vehicles/#_4","text":"","title":"\u8f66"},{"location":"catalogue_vehicles/#-a2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - A2"},{"location":"catalogue_vehicles/#-e-tron","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - E - Tron"},{"location":"catalogue_vehicles/#-tt","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - TT"},{"location":"catalogue_vehicles/#-","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5b9d\u9a6c - \u591a\u529f\u80fd \u65c5\u884c\u8f66"},{"location":"catalogue_vehicles/#-impala","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u4f5b\u5170 - Impala"},{"location":"catalogue_vehicles/#-c3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u94c1\u9f99 - C3"},{"location":"catalogue_vehicles/#-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Charger 2020"},{"location":"catalogue_vehicles/#-police-charger","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u9053\u5947 - Police Charger"},{"location":"catalogue_vehicles/#-police-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Police Charger 2020"},{"location":"catalogue_vehicles/#-_1","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df\u8f66 \uff09"},{"location":"catalogue_vehicles/#-mustang","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u798f\u7279 - Mustang"},{"location":"catalogue_vehicles/#-wrangler-rubicon","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5409\u666e\u8f66 - Wrangler Rubicon"},{"location":"catalogue_vehicles/#-mkz-2017","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6797\u80af - MKZ 2017"},{"location":"catalogue_vehicles/#-mkz-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6797\u80af - MKZ 2020"},{"location":"catalogue_vehicles/#-coupe","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6885\u8d5b\u5fb7\u65af - Coupe"},{"location":"catalogue_vehicles/#-coupe-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Coupe 2020"},{"location":"catalogue_vehicles/#-microlino","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5fae\u578b\u8f66 - Microlino"},{"location":"catalogue_vehicles/#-cooper-s","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u8ff7\u4f60 - Cooper S"},{"location":"catalogue_vehicles/#-cooper-s-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u8ff7\u4f60 - Cooper S 2021"},{"location":"catalogue_vehicles/#-micra","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Micra"},{"location":"catalogue_vehicles/#-patrol","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Patrol"},{"location":"catalogue_vehicles/#-patrol-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5c3c\u6851 - Patrol 2021"},{"location":"catalogue_vehicles/#seat-leon","text":"\u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Seat - Leon"},{"location":"catalogue_vehicles/#-model-3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Model 3"},{"location":"catalogue_vehicles/#toyota-prius","text":"\u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Toyota - Prius"},{"location":"catalogue_vehicles/#_5","text":"","title":"\u5361\u8f66"},{"location":"catalogue_vehicles/#carla-motors-carlacola","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - CarlaCola"},{"location":"catalogue_vehicles/#carla-motors-hgv","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09"},{"location":"catalogue_vehicles/#carla-motors-firetruck","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"Carla Motors - Firetruck"},{"location":"catalogue_vehicles/#-cybertruck","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Cybertruck"},{"location":"catalogue_vehicles/#_6","text":"","title":"\u9762\u5305\u8f66"},{"location":"catalogue_vehicles/#-_2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u6551\u62a4\u8f66"},{"location":"catalogue_vehicles/#-sprinter","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Sprinter"},{"location":"catalogue_vehicles/#-t2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u4f17 - T2"},{"location":"catalogue_vehicles/#-t2-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5927\u4f17 - T2 2021"},{"location":"catalogue_vehicles/#_7","text":"","title":"\u5df4\u58eb"},{"location":"catalogue_vehicles/#-fusorosa","text":"\u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u4e09\u83f1 - Fusorosa"},{"location":"catalogue_vehicles/#_8","text":"","title":"\u6469\u6258\u8f66"},{"location":"catalogue_vehicles/#-low-rider","text":"\u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider"},{"location":"catalogue_vehicles/#kawasaki-ninja","text":"\u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Kawasaki - Ninja"},{"location":"catalogue_vehicles/#vespa-zx-125","text":"\u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Vespa - ZX 125"},{"location":"catalogue_vehicles/#yamaha-yzf","text":"\u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Yamaha - YZF"},{"location":"catalogue_vehicles/#_9","text":"","title":"\u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#bh-","text":"\u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"BH - \u8d8a\u91ce \u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#-century","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u540d \u81ea\u884c\u8f66 - Century"},{"location":"catalogue_vehicles/#gazelle-omafiets","text":"\u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Gazelle - Omafiets"},{"location":"cont_code_of_conduct/","text":"\u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e \u6211\u4eec \u7684 \u627f\u8bfa \u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002 \u6211\u4eec \u7684 \u6807\u51c6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a \u6211\u4eec \u7684 \u8d23\u4efb \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002 \u8303\u56f4 \u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002 \u6267\u884c \u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002 \u5f52\u5c5e \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_1","text":"\u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e","title":"\u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_2","text":"\u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002","title":"\u6211\u4eec \u7684 \u627f\u8bfa"},{"location":"cont_code_of_conduct/#_3","text":"\u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a","title":"\u6211\u4eec \u7684 \u6807\u51c6"},{"location":"cont_code_of_conduct/#_4","text":"\u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002","title":"\u6211\u4eec \u7684 \u8d23\u4efb"},{"location":"cont_code_of_conduct/#_5","text":"\u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002","title":"\u8303\u56f4"},{"location":"cont_code_of_conduct/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002","title":"\u6267\u884c"},{"location":"cont_code_of_conduct/#_7","text":"\u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u5f52\u5c5e"},{"location":"cont_coding_standard/","text":"\u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u4e00\u822c Python C++ \u4e00\u822c \u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002 Python \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002 C++ \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_1","text":"\u4e00\u822c Python C++","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_2","text":"\u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002","title":"\u4e00\u822c"},{"location":"cont_coding_standard/#python","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002","title":"Python"},{"location":"cont_coding_standard/#c","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"C++"},{"location":"cont_contribution_guidelines/","text":"\u4e3a Carla \u505a\u51fa \u8d21\u732e Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e \u62a5\u544a \u9519\u8bef \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002 \u8bf7\u6c42 \u529f\u80fd \u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002 \u4ee3\u7801 \u8d21\u732e \u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002 \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002 \u5f00\u59cb \u4e4b\u524d \u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002 \u63d0\u4ea4 \u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002 \u6e05\u5355 \u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002 \u827a\u672f \u8d21\u732e \u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002 \u6587\u6863 \u8d21\u732e \u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u8d21\u732e \u6307\u5357"},{"location":"cont_contribution_guidelines/#carla","text":"Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e","title":"\u4e3a Carla \u505a\u51fa \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_1","text":"\u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002","title":"\u62a5\u544a \u9519\u8bef"},{"location":"cont_contribution_guidelines/#_2","text":"\u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002","title":"\u8bf7\u6c42 \u529f\u80fd"},{"location":"cont_contribution_guidelines/#_3","text":"\u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002","title":"\u4ee3\u7801 \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_4","text":"\u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002","title":"\u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce"},{"location":"cont_contribution_guidelines/#_5","text":"\u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"cont_contribution_guidelines/#_6","text":"\u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_contribution_guidelines/#_7","text":"\u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002","title":"\u63d0\u4ea4"},{"location":"cont_contribution_guidelines/#_8","text":"\u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002","title":"\u6e05\u5355"},{"location":"cont_contribution_guidelines/#_9","text":"\u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002","title":"\u827a\u672f \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_10","text":"\u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u6587\u6863 \u8d21\u732e"},{"location":"cont_doc_standard/","text":"\u6587\u6863 \u6807\u51c6 \u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u6587\u6863 \u7ed3\u6784 \u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs . \u89c4\u5219 \u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_1","text":"\u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_2","text":"\u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs .","title":"\u6587\u6863 \u7ed3\u6784"},{"location":"cont_doc_standard/#_3","text":"\u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002","title":"\u89c4\u5219"},{"location":"cont_doc_standard/#_4","text":"\u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u4f8b\u5916\u60c5\u51b5"},{"location":"content_authoring_large_maps/","text":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002 \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"Content authoring large maps"},{"location":"content_authoring_large_maps/#carla","text":"Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002","title":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_1","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_2","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#carla_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002","title":"\u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla"},{"location":"content_authoring_large_maps/#_1","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"content_authoring_large_maps/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"content_authoring_large_maps/#_2","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"content_authoring_large_maps/#_3","text":"\u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#_4","text":"\u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002","title":"\u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f"},{"location":"content_authoring_large_maps/#_5","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"core_actors/","text":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002 \u7ba1\u7406 \u84dd \u56fe\u5e93 carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002 \u751f\u6210 \u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) ) \u5904\u7406 carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002 \u6467\u6bc1 \u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) ) \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8f66\u8f86 carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u884c\u4eba carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_1","text":"Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_2","text":"\u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002","title":"\u84dd\u56fe"},{"location":"core_actors/#_3","text":"carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002","title":"\u7ba1\u7406 \u84dd \u56fe\u5e93"},{"location":"core_actors/#_4","text":"\u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002","title":"\u53c2\u4e0e\u8005 \u751f\u547d\u5468\u671f"},{"location":"core_actors/#_5","text":"\u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) )","title":"\u751f\u6210"},{"location":"core_actors/#_6","text":"carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002","title":"\u5904\u7406"},{"location":"core_actors/#_7","text":"\u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002","title":"\u6467\u6bc1"},{"location":"core_actors/#_8","text":"","title":"\u53c2\u4e0e\u8005 \u7c7b\u578b"},{"location":"core_actors/#_9","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002","title":"\u4f20\u611f\u5668"},{"location":"core_actors/#_10","text":"\u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) )","title":"\u89c2\u5bdf\u8005"},{"location":"core_actors/#_11","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"\u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a\u706f"},{"location":"core_actors/#_12","text":"carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights )","title":"\u8f66\u8f86"},{"location":"core_actors/#_13","text":"carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u884c\u4eba"},{"location":"core_map/","text":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5 \u5730\u56fe \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002 \u6539\u53d8 \u5730\u56fe \u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) ) \u5730\u6807 OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True ) \u8def\u5f84 \u70b9 carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2cm \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color \u8f66\u9053 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change \u8def\u53e3 carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( ) \u73af\u5883 \u5bf9\u8c61 Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a \u5728 Carla \u4e2d \u5bfc\u822a Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002 \u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 ) \u751f\u6210 \u5730\u56fe \u5bfc\u822a \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( ) Carla \u5730\u56fe Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8 \u975e \u5206\u5c42 \u5730\u56fe \u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a "},{"location":"core_map/#_1","text":"\u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a"},{"location":"core_map/#_2","text":"\u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002","title":"\u5730\u56fe"},{"location":"core_map/#_3","text":"\u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) )","title":"\u6539\u53d8 \u5730\u56fe"},{"location":"core_map/#_4","text":"OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True )","title":"\u5730\u6807"},{"location":"core_map/#_5","text":"carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2cm \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color","title":"\u8def\u5f84 \u70b9"},{"location":"core_map/#_6","text":"OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change","title":"\u8f66\u9053"},{"location":"core_map/#_7","text":"carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( )","title":"\u8def\u53e3"},{"location":"core_map/#_8","text":"Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a","title":"\u73af\u5883 \u5bf9\u8c61"},{"location":"core_map/#carla","text":"Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002","title":"\u5728 Carla \u4e2d \u5bfc\u822a"},{"location":"core_map/#_9","text":"Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 )","title":"\u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a"},{"location":"core_map/#_10","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( )","title":"\u751f\u6210 \u5730\u56fe \u5bfc\u822a"},{"location":"core_map/#carla_1","text":"Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8","title":"Carla \u5730\u56fe"},{"location":"core_map/#_11","text":"\u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002","title":"\u975e \u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_12","text":"\u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a","title":"\u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_13","text":"Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"core_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002 \u8bbe\u7f6e \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' ) \u751f\u6210 attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u76d1\u542c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback ) \u6570\u636e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5176\u4ed6 \u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u7b2c\u56db \u3001 \u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_1","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_2","text":"carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002","title":"\u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd"},{"location":"core_sensors/#_3","text":"\u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' )","title":"\u8bbe\u7f6e"},{"location":"core_sensors/#_4","text":"attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u751f\u6210"},{"location":"core_sensors/#_5","text":"\u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback )","title":"\u76d1\u542c"},{"location":"core_sensors/#_6","text":"\u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002","title":"\u6570\u636e"},{"location":"core_sensors/#_7","text":"","title":"\u4f20\u611f\u5668 \u7c7b\u578b"},{"location":"core_sensors/#_8","text":"\u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002","title":"\u76f8\u673a"},{"location":"core_sensors/#_9","text":"\u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002","title":"\u68c0\u6d4b\u5668"},{"location":"core_sensors/#_10","text":"\u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5176\u4ed6"},{"location":"core_world/","text":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002 \u4e16\u754c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u4e16\u754c \u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002 \u5929\u6c14 \u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002 \u706f\u5149 \u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002 \u8c03\u8bd5 \u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002 \u4e16\u754c \u5feb\u7167 \u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_1","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_2","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"core_world/#_3","text":"\u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002","title":"\u5ba2\u6237\u7aef \u521b\u5efa"},{"location":"core_world/#_4","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002","title":"\u4e16\u754c \u8fde\u63a5"},{"location":"core_world/#_5","text":"\u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002","title":"\u4f7f\u7528 \u547d\u4ee4"},{"location":"core_world/#_6","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002","title":"\u5176\u4ed6 \u5ba2\u6237\u7aef \u5b9e\u7528\u7a0b\u5e8f"},{"location":"core_world/#_7","text":"\u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u4e16\u754c"},{"location":"core_world/#_8","text":"\u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002","title":"\u53c2\u4e0e\u8005"},{"location":"core_world/#_9","text":"\u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002","title":"\u5929\u6c14"},{"location":"core_world/#_10","text":"\u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002","title":"\u706f\u5149"},{"location":"core_world/#_11","text":"\u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002","title":"\u8c03\u8bd5"},{"location":"core_world/#_12","text":"\u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167","title":"\u4e16\u754c \u5feb\u7167"},{"location":"core_world/#_13","text":"\u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u4e16\u754c \u8bbe\u7f6e"},{"location":"custom_assets_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599 \u6dfb\u52a0 \u9053\u5177 \u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002 \u6dfb\u52a0 \u8f66\u8f86 \u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002 \u6253\u5305 \u8d44\u4ea7 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u5b9a\u5236 \u6750\u6599 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_1","text":"Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_2","text":"\u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002","title":"\u6dfb\u52a0 \u9053\u5177"},{"location":"custom_assets_tutorials/#_3","text":"\u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002","title":"\u6dfb\u52a0 \u8f66\u8f86"},{"location":"custom_assets_tutorials/#_4","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002","title":"\u6253\u5305 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_5","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u5b9a\u5236 \u6750\u6599"},{"location":"development_tutorials/","text":"\u5f00\u53d1 Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c \u8fdb\u884c \u53d1\u5e03 \u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 \u751f\u6210 \u78b0\u649e \u8fb9\u754c \u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_1","text":"Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_2","text":"\u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002","title":"\u8fdb\u884c \u53d1\u5e03"},{"location":"development_tutorials/#_3","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002","title":"\u5347\u7ea7 \u5185\u5bb9"},{"location":"development_tutorials/#_4","text":"Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"development_tutorials/#_5","text":"\u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"development_tutorials/#_6","text":"Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"development_tutorials/#_7","text":"\u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"development_tutorials/#_8","text":"\u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u751f\u6210 \u78b0\u649e \u8fb9\u754c"},{"location":"download/","text":"\u4e0b\u8f7d \u6700\u65b0 \u53d1\u5e03 Carla 0.9 . 15 - \u6587\u6863 \u6bcf\u665a \u6784\u5efa \u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows ) \u7248\u672c 0.9 . x \u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863 Versions 0.8 . x Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863 Docker \u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"\u4e0b\u8f7d"},{"location":"download/#_1","text":"","title":"\u4e0b\u8f7d"},{"location":"download/#_2","text":"Carla 0.9 . 15 - \u6587\u6863","title":"\u6700\u65b0 \u53d1\u5e03"},{"location":"download/#_3","text":"\u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows )","title":"\u6bcf\u665a \u6784\u5efa"},{"location":"download/#09x","text":"\u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863","title":"\u7248\u672c 0.9 . x"},{"location":"download/#versions-08x","text":"Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863","title":"Versions 0.8 . x"},{"location":"download/#docker","text":"\u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"Docker"},{"location":"ecosys_ansys/","text":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b"},{"location":"ecosys_ansys/#ansys","text":"\u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236\u5668"},{"location":"ecosys_femfx/","text":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_femfx/#_1","text":"FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_iss/","text":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u793a\u4f8b \u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a \u5fae\u578b \u5fae\u578b\u8f66 \u6f14\u793a \u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_1","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236","title":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_2","text":"\u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a","title":"\u4eff\u771f\u5668 \u793a\u4f8b"},{"location":"ecosys_iss/#_3","text":"\u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"\u5fae\u578b\u8f66 \u6f14\u793a"},{"location":"ecosys_ros/","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7 Carla \u7684 \u539f\u751f ROS \u63a5\u53e3 \u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002 Carla ROS \u6865 Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Ecosys ros"},{"location":"ecosys_ros/#_1","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7","title":"\u673a\u5668\u4eba \u64cd\u4f5c\u7cfb\u7edf"},{"location":"ecosys_ros/#carla-ros","text":"\u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002","title":"Carla \u7684 \u539f\u751f ROS \u63a5\u53e3"},{"location":"ecosys_ros/#carla-ros_1","text":"Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Carla ROS \u6865"},{"location":"ext_docs/","text":"\u6269\u5c55 \u6587\u6863 \u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002 \u5148\u8fdb \u7406\u5ff5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u53c2\u8003 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_1","text":"\u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_2","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002","title":"\u5148\u8fdb \u7406\u5ff5"},{"location":"ext_docs/#_3","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002","title":"\u4ea4\u901a \u4eff\u771f"},{"location":"ext_docs/#_4","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002","title":"\u53c2\u8003"},{"location":"ext_docs/#_5","text":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"ext_docs/#_6","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"foundations/","text":"\u57fa\u7840 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' ) \u4e16\u754c \u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5730\u56fe \u548c \u5bfc\u822a \u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8bb0\u5f55 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u56de\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002 \u6e32\u67d3 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u8fdb\u9636 \u6b65\u9aa4 Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u6982\u5ff5 \u548c \u57fa\u7840"},{"location":"foundations/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f","title":"\u57fa\u7840"},{"location":"foundations/#_2","text":"","title":"\u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"foundations/#_3","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' )","title":"\u5ba2\u6237\u7aef"},{"location":"foundations/#_4","text":"\u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( )","title":"\u4e16\u754c"},{"location":"foundations/#_5","text":"\u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"\u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"foundations/#_6","text":"\u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002","title":"\u5730\u56fe \u548c \u5bfc\u822a"},{"location":"foundations/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"foundations/#_8","text":"Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_9","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_10","text":"\u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_11","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002","title":"\u8bb0\u5f55\u5668"},{"location":"foundations/#_12","text":"\u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"foundations/#_13","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u56de\u653e"},{"location":"foundations/#_14","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"foundations/#_15","text":"Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a","title":"\u6e32\u67d3"},{"location":"foundations/#_16","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"foundations/#_17","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"foundations/#_18","text":"Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u8fdb\u9636 \u6b65\u9aa4"},{"location":"iss_install/","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 ISS \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u4ece \u5176 Github \u4ed3\u5e93 \u4e0b\u8f7d \uff0c \u5176\u4e2d \u53ef\u4ee5 \u627e\u5230 \u8be6\u7ec6 \u7684 \u5b89\u88c5 \u8bf4\u660e \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 ISS \u4f7f\u7528 Ubuntu 20.04 \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u8fd0\u884c Python 3.8 \u3002 \u5bf9\u4e8e \u90a3\u4e9b \u6709 \u5174\u8da3 \u5c06 ISS \u4e0e Gazebo \u548c ROS - Noetic \u7ed3\u5408 \u4f7f\u7528 \u7684 \u4eba \uff0c \u60a8 \u5e94\u8be5 \u6309\u7167 \u5b98\u65b9 ROS \u6587\u6863 \u4e2d \u63d0\u4f9b \u7684 \u8bf4\u660e \u5b89\u88c5 ROS - Noetic \u3002 \u8981 \u5c06 ISS \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u5fc5\u987b \u5b89\u88c5 Carla \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u7248\u672c 0.9 . 13 \uff0c \u53ef\u4ee5 \u5728 Carla GitHub \u53d1\u5e03 \u9875\u9762 \u53d1\u5e03\u9875 \u53d1\u5e03\u9875\u9762 \u627e\u5230 \u8be5 \u7248\u672c \u3002 \u5f00\u53d1 \u7248 \u8981 \u5b89\u88c5 ISS \u7684 \u5f00\u53d1 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 git clone https : / / github . com / CAS - LRJ / ISS . git cd ISS && python3 setup . py develop \u6784\u5efa \u8981 \u6784\u5efa ISS \u7684 ROS \u5305 \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 cd ISS / ros1 _ ws && catkin build source devel / setup . bash \u8fd0\u884c \u4efb\u52a1 \u5982\u679c \u4f7f\u7528 Gazebo \uff0c \u53ea \u9700 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch robot _ gazebo gazebo _ demo . launch \u5982\u679c \u4f7f\u7528 Carla \uff0c \u8bf7 \u5148 \u542f\u52a8 Carla \uff0c \u7136\u540e \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch carla _ bridge carla _ demo . launch","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":"\u8981 \u5b89\u88c5 ISS \u7684 \u5f00\u53d1 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 git clone https : / / github . com / CAS - LRJ / ISS . git cd ISS && python3 setup . py develop","title":"\u5f00\u53d1 \u7248"},{"location":"iss_install/#_4","text":"\u8981 \u6784\u5efa ISS \u7684 ROS \u5305 \uff0c \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 cd ISS / ros1 _ ws && catkin build source devel / setup . bash","title":"\u6784\u5efa"},{"location":"iss_install/#_5","text":"\u5982\u679c \u4f7f\u7528 Gazebo \uff0c \u53ea \u9700 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch robot _ gazebo gazebo _ demo . launch \u5982\u679c \u4f7f\u7528 Carla \uff0c \u8bf7 \u5148 \u542f\u52a8 Carla \uff0c \u7136\u540e \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a roslaunch carla _ bridge carla _ demo . launch","title":"\u8fd0\u884c \u4efb\u52a1"},{"location":"large_map_import/","text":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_2","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"large_map_import/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"large_map_import/#_3","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"large_map_import/#_4","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"large_map_overview/","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u6982\u8ff0 Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002 \u74e6\u7247 \u6d41 \u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_1","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_2","text":"Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_3","text":"\u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002","title":"\u74e6\u7247 \u6d41"},{"location":"large_map_overview/#_4","text":"\u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4f11\u7720 \u53c2\u4e0e\u8005"},{"location":"large_map_roadrunner/","text":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002 \u4e0b \u4e00\u4e2a \u6b65\u9aa4 \u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4","title":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"large_map_roadrunner/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"large_map_roadrunner/#roadrunner_2","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_3","text":"\u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#_2","text":"\u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u4e2a \u6b65\u9aa4"},{"location":"map_town01/","text":"\u57ce\u9547 1 \u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#1","text":"\u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#_1","text":"\u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town01/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town02/","text":"\u57ce\u9547 2 \u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#2","text":"\u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#_1","text":"\u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002","title":"\u8def\u7f51"},{"location":"map_town02/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u7279\u5f81"},{"location":"map_town03/","text":"\u57ce\u9547 3 \u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002 \u8def\u7f51 \u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#3","text":"\u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#_1","text":"\u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town03/#_2","text":"\u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town04/","text":"\u57ce\u9547 4 \u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u7279\u5f81 \u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#4","text":"\u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#_1","text":"\u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002","title":"\u8def\u7f51"},{"location":"map_town04/#_2","text":"\u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u7279\u5f81"},{"location":"map_town05/","text":"\u57ce\u9547 5 \u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8def\u7f51 \u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u7279\u5f81 \u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#5","text":"\u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#_1","text":"\u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002","title":"\u8def\u7f51"},{"location":"map_town05/#_2","text":"\u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u7279\u5f81"},{"location":"map_town06/","text":"\u57ce\u9547 6 \u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#6","text":"\u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/","text":"\u57ce\u9547 7 \u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002 \u7279\u5f81 \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#7","text":"\u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/#_2","text":"\u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u7279\u5f81"},{"location":"map_town10/","text":"\u57ce\u9547 10 \u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002 \u7279\u5f81 \u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#10","text":"\u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#_1","text":"\u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002","title":"\u8def\u7f51"},{"location":"map_town10/#_2","text":"\u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town11/","text":"\u57ce\u9547 11 \u662f \u4e00\u5f20 \u6ca1\u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u6216 \u690d\u88ab \u7b49 \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7531 \u6742\u4e71 \u6742\u4e71\u65e0\u7ae0 \u7684 \u5355\u8f66 \u9053 \u9053\u8def \u7ec4\u6210 \uff0c \u6563\u5e03 \u7740 \u5c0f\u7fa4 \u7f51\u683c \u72b6 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3002 \u8be5 \u666f\u89c2 \u6709 \u4e00\u4e9b \u4e18\u9675 \u548c \u9ad8\u5730 \uff0c \u5e76\u4e14 \u5177\u6709 \u8349\u72b6 \u7eb9\u7406 \u3002 \u57ce\u9547 11 \u4e3b\u8981 \u7528\u4f5c Carla 0.9 . 12 \u4e2d \u5f15\u5165 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u9a8c\u8bc1 \uff0c \u5e76\u4e14 \u662f \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u96c6\u6210 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u5927 \u5730\u56fe \u3002 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u67e5\u770b \u57ce\u9547 11 \u7684 \u8d44\u6e90 \u6587\u4ef6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u7684 \u60c5\u51b5 \u3002","title":"Map town11"},{"location":"map_town12/","text":"\u57ce\u9547 12 \u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 12 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 12"},{"location":"map_town12/#12","text":"\u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002","title":"\u57ce\u9547 12"},{"location":"map_town12/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town12/#12_1","text":"","title":"\u57ce\u9547 12 \u533a"},{"location":"map_town12/#_2","text":"\u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town12/#_3","text":"\u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_4","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town12/#_5","text":"\u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town12/#_7","text":"\u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town12/#_8","text":"\u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town12/#_9","text":"\u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town13/","text":"\u57ce\u9547 13 \u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 13 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 13"},{"location":"map_town13/#13","text":"\u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002","title":"\u57ce\u9547 13"},{"location":"map_town13/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town13/#13_1","text":"","title":"\u57ce\u9547 13 \u533a"},{"location":"map_town13/#_2","text":"\u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town13/#_3","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town13/#_4","text":"\u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_5","text":"\u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town13/#_7","text":"\u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town13/#_8","text":"\u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town13/#_9","text":"\u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town15/","text":"\u57ce\u9547 15 \u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002 \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#15","text":"\u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#_1","text":"\u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002","title":"\u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3"},{"location":"map_town15/#_2","text":"\u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u4eba\u6587 \u56fe\u4e66\u9986"},{"location":"maps_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"maps_tutorials/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"pcl_recorder/","text":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools \u4f7f\u7528 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_1","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_2","text":"\u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"pcl_recorder/#pcl","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u4f7f\u7528 PCL \u8bb0\u5f55\u5668"},{"location":"plugins_carlaviz/","text":"carlaviz carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177 \u4e00\u822c \u4fe1\u606f \u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT . \u652f\u6301 Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002 \u4e0b\u8f7d \u63d2\u4ef6 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002 \u8fd0\u884c carlaviz 1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002 \u5de5\u5177 \u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Web \u53ef\u89c6\u5316 \u5668"},{"location":"plugins_carlaviz/#carlaviz","text":"carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177","title":"carlaviz"},{"location":"plugins_carlaviz/#_1","text":"\u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT .","title":"\u4e00\u822c \u4fe1\u606f"},{"location":"plugins_carlaviz/#_2","text":"Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002","title":"\u652f\u6301"},{"location":"plugins_carlaviz/#carlaviz_1","text":"","title":"\u83b7\u53d6 carlaviz"},{"location":"plugins_carlaviz/#_3","text":"Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"plugins_carlaviz/#_4","text":"\u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002","title":"\u4e0b\u8f7d \u63d2\u4ef6"},{"location":"plugins_carlaviz/#carlaviz_2","text":"1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002","title":"\u8fd0\u884c carlaviz"},{"location":"plugins_carlaviz/#_5","text":"\u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5de5\u5177"},{"location":"python_api/","text":"Python API \u53c2\u8003 \u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002 carla . AckermannControllerSettings \u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 \u65b9\u6cd5 __ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float ) Dunder methods __ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self ) carla . Actor Carla \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u4e49 \u4e3a \u5728 \u4eff\u771f \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u6216 \u53ef\u4ee5 \u79fb\u52a8 \u7684 \u4efb\u4f55 \u7269\u4f53 \u3002 \u5176\u4e2d \u5305\u62ec \uff1a \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u89c6\u4e3a \u5176\u4e2d \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4eff\u771f \u4e2d \u7531 carla . World \u751f\u6210 \uff0c \u5e76\u4e14 \u9700\u8981 \u521b\u5efa carla . ActorBlueprint \u3002 \u8fd9\u4e9b \u84dd\u56fe \u5c5e\u4e8e Carla \u63d0\u4f9b \u7684 \u5e93 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002 \u65b9\u6cd5 add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - degrees ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u626d\u77e9 \u77e2\u91cf \u3002 destroy ( self ) \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8fd9\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u6210\u529f \u5219 True \u3002 \u5982\u679c \u5df2\u7ecf \u88ab \u7834\u574f \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u8fd4\u56de : bool \u8b66\u544a : T \u6b64 \u65b9\u6cd5 \u4f1a \u963b\u6b62 \u811a\u672c \uff0c \u76f4\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b8c\u6210 \u9500\u6bc1 \u4e3a\u6b62 \u3002 disable _ constant _ velocity ( self ) \u7981\u7528 \u4e4b\u524d \u4e3a carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u7684 \u4efb\u4f55 \u6052\u5b9a \u901f\u5ea6 \u3002 enable _ constant _ velocity ( self , velocity ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u77e2\u91cf \u8bbe\u7f6e \u4e3a \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u6052\u5b9a \u503c \u3002 \u6240 \u5f97\u5230 \u7684 \u901f\u5ea6 \u5c06 \u8fd1\u4f3c \u8fd1\u4f3c\u4e8e velocity \u6240 \u8bbe\u7f6e \u7684 \u901f\u5ea6 \uff0c \u4e0e set _ target _ velocity ( ) \u4e00\u6837 \u3002 \u53c2\u6570 : velocity ( carla . Vector3D - m / s ) - Velocity vector in local space . \u6ce8\u610f : \u53ea\u6709 carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u3002 \u8b66\u544a : \u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u542f\u7528 \u6052\u5b9a \u901f\u5ea6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u6b64 \u65b9\u6cd5 \u4f1a \u8986\u76d6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9 \u901f\u5ea6 \u7684 \u4efb\u4f55 \u66f4\u6539 \u3002 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - meters \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World \u8bbe\u7f6e \u5668 set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - meters ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform Dunder methods __ 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 Dunder methods __ 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 Return : bool __ str __ ( self ) carla . ActorAttributeType Carla \u5728 carla . BlueprintLibrary \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u6b64\u7c7b \u5c06 carla . ActorAttribute \u4e2d \u7684 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u3002 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \u5747 \u5728 \u5185\u90e8 \u7ba1\u7406 \uff0c \u5e76 \u5728 \u6b64\u5904 \u5217\u51fa \uff0c \u4ee5\u4fbf \u66f4\u597d \u5730 \u7406\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf Bool Int Float String RGBColor carla . ActorBlueprint Carla \u4e3a Actor \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u67e5\u9605 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u5305\u542b \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53ef\u4ee5 \u4fee\u6539 \u6216 \u4e0d\u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u8be5\u7c7b \u662f \u5e93 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u521b\u5efa \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u6b65\u9aa4 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9700\u8981 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u624d\u80fd \u4ea7\u751f \u3002 \u8fd9\u4e9b \u5c06 \u6240\u8ff0 \u84dd\u56fe \u7684 \u4fe1\u606f \u53ca\u5176 \u5c5e\u6027 \u548c \u4e00\u4e9b \u6807\u7b7e \u5b58\u50a8 \u5728 \u5bf9\u8c61 \u4e2d\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u5206\u7c7b \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u5c5e\u6027 \u5e76 \u6700\u7ec8 \u901a\u8fc7 carla . World \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( str ) \u5e93\u5185 \u6240\u8ff0 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u4f8b\u5982 walker . pedestrian.0001 \u3002 tags ( list ( str ) ) \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u7684 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63cf\u8ff0 \u5b83\u4eec \u7684 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 [ ' 0001 ' , ' pedestrian ' , ' walker ' ] \u3002 \u65b9\u6cd5 has _ attribute ( self , id ) \u5982\u679c \u84dd\u56fe \u5305\u542b \u8be5 id \u5c5e\u6027 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a id ( str ) - \u4f8b\u5982 gender \u5c06 \u4e3a \u884c\u4eba \u7684 \u84dd\u56fe \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool has _ tag ( self , tag ) \u5982\u679c \u84dd\u56fe \u5df2 \u5217\u51fa \u6307\u5b9a tag \u7684 \u5185\u5bb9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a tag ( str ) - \u4f8b\u5982 \uff1a ' walker ' \u3002 \u8fd4\u56de \uff1a bool match _ tags ( self , wildcard _ pattern ) \u5982\u679c \u4e3a\u6b64 \u84dd\u56fe \u5217\u51fa \u7684 \u4efb\u4f55 \u6807\u8bb0 \u5339\u914d wildcard _ pattern \uff0c \u5219 \u8fd4\u56de True \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ attribute ( self , id ) \u8fd4\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4ee5\u53ca id \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorAttribute \u8bbe\u7f6e \u5668 \uff1a carla . ActorBlueprint . set _ attribute \u8bbe\u7f6e \u5668 set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute Dunder \u65b9\u6cd5 __ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self ) carla . ActorList \u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u7b5b\u9009 \u5339\u914d wildcard _ pattern \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \uff0c \u4ee5 \u5bf9\u6297 \u53d8\u91cf type _ id ( \u5b83 \u6807\u8bc6 \u7528\u4e8e \u751f\u6210 \u5b83\u4eec \u7684 \u84dd\u56fe ) \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a list find ( self , actor _ id ) \u4f7f\u7528 \u5176 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8fd4\u56de \u5b83 \uff0c \u5982\u679c \u4e0d \u5b58\u5728 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a carla . Actor Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u4e0e \u5217\u8868 \u4e2d pos \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de \uff1a carla . Actor __ iter __ ( self ) \u5728 \u5305\u542b carla . Actor \u7684 \u5217\u8868 \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u5217\u51fa \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u5728 \u5217\u51fa \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u89e3\u6790 ID \u3002 \u8fd4\u56de \uff1a str carla . ActorSnapshot \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u7279\u5b9a \u65f6\u523b \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5305\u542b \u5728 carla . WorldSnapshot \u4e2d \uff0c \u5e76 \u5728 \u6bcf\u4e2a \u65f6\u949f \u5468\u671f \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6b21 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u4e3a \u8be5 tick \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - rad / s get _ transform ( self ) \u8fd4\u56de \u8be5 tick \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8fd4\u56de \uff1a carla . Transform get _ velocity ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s carla . ActorState \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u72b6\u6001 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Invalid \u5982\u679c \u51fa\u73b0 \u95ee\u9898 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31\u662f \u65e0\u6548 \u7684 \u3002 Active \u5f53 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83 \u5c31\u662f \u6d3b\u8dc3 \u7684 \u3002 Dormant \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d \u88ab \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u4e0d\u4f1a \u901a\u8fc7 \u7269\u7406 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u4e8e \u5927 \u5730\u56fe \u4e2d \u5df2 \u5378\u8f7d \u7684 \u56fe\u5757 \u4e0a \uff0c \u5219 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 carla . AttachmentType \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u5176\u7236 \u7ea7 \u4e4b\u95f4 \u7684 \u9644\u4ef6 \u9009\u9879 \u7684 \u7c7b \u3002 \u5f53 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83\u4eec \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \uff0c \u8fd9\u6837 \u5b83\u4eec \u7684 \u4f4d\u7f6e \u5c31 \u4f1a \u76f8\u5e94 \u6539\u53d8 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 carla . World . spawn _ actor \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u751f\u6210 \u65f6 \u8fde\u63a5 \u5230 \u6c7d\u8f66 \u4e0a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9644\u4ef6 \u7c7b\u578b \u5728 \u7c7b \u4e2d \u58f0\u660e \u4e3a \u679a\u4e3e \u3002 \u5b9e\u4f8b \u53d8\u91cf Rigid \u901a\u8fc7 \u6b64 \u56fa\u5b9a \u9644\u4ef6 \uff0c \u5bf9\u8c61 \u4e25\u683c \u9075\u5faa \u5176\u7236 \u4f4d\u7f6e \u3002 \u8fd9\u662f \u63a8\u8350 \u7684 \u9644\u4ef6 \uff0c \u7528\u4e8e \u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \u3002 SpringArm \u4e00\u79cd \u9644\u4ef6 \uff0c \u53ef \u6839\u636e \u5176\u7236 \u7ea7 \u6269\u5c55 \u6216 \u7f29\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u4ec5 \u5efa\u8bae \u5728 \u9700\u8981 \u5e73\u6ed1 \u8fd0\u52a8 \u7684 \u4eff\u771f \u4e2d \u5f55\u5236 \u89c6\u9891 \u65f6 \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u56e0\u6b64 check the UE \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u5947\u602a \u7684 \u884c\u4e3a \u3002 \uff08 \u6bd4\u5982 \uff1a child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 SpringArmGhost \u4e00\u4e2a \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \u7684 \u9644\u4ef6 \uff0c \u4f46 \u5b83 \u4e0d\u4f1a \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u4e0d\u4f1a \u6269\u5c55 \u6216 \u6536\u7f29 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 ghost \u4e00\u8bcd \u56e0\u4e3a \u662f\u56e0\u4e3a \u8fd9\u6837 \u76f8\u673a \u5c31 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u548c \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 \u6b64 \u9644\u4ef6 \u4ec5 \u5efa\u8bae \u7528\u4e8e \u5f55\u5236 \u9700\u8981 \u5e73\u6ed1 \u79fb\u52a8 \u7684 \u4eff\u771f \u89c6\u9891 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u8bf7 \u67e5\u770b \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u4f1a \u51fa\u73b0 \u5947\u602a \u7684 \u884c\u4e3a \uff08 \u6bd4\u5982 child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 carla . BlueprintLibrary \u5305\u542b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u63d0\u4f9b \u7684 \u84dd\u56fe \u7684 \u7c7b \u3002 \u5b83 \u7684 \u4e3b\u8981 \u5e94\u7528 \u662f \u8fd4\u56de \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u9700 \u7684 carla . ActorBlueprint \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u4e2a \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u53ef\u80fd \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u4e5f \u53ef\u80fd \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u8be5\u5e93 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u8bbf\u95ee \u3002 \u8fd9 \u662f \u5305\u542b \u6bcf\u4e2a \u53ef\u7528 \u84dd\u56fe \u53ca\u5176 \u7ec6\u8282 \u7684 \u53c2\u8003 \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 id \u548c \u6807\u8bb0 \u8fc7\u6ee4 \u4e0e \u901a\u914d\u7b26 \u6a21\u5f0f wildcard _ pattern \u5339\u914d \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary filter _ by _ attribute ( self , name , value ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \uff0c \u7b5b\u9009 \u5177\u6709 \u4e0e\u503c value \u5339\u914d \u7684 \u7ed9\u5b9a \u5c5e\u6027 \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a name ( str ) value ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary find ( self , id ) \u8fd4\u56de \u4e0e \u8be5 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u5bf9\u5e94 \u7684 \u84dd\u56fe \u3002 \u53c2\u6570 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorBlueprint Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u5b58\u50a8 \u5728 \u5305\u542b \u84dd\u56fe \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u5185 pos \u4f4d\u7f6e \u7684 \u84dd\u56fe \u3002 Return : 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 - meters ) \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 - meters ) \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 - meters ) - \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 - meters ) - \u8981 \u68c0\u67e5 \u7684 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \u3002 transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u5c40\u90e8 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . CityObjectLabel \u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u5b9e\u4f8b \u53d8\u91cf None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any carla . Client \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002 \u65b9\u6cd5 __ init __ ( self , host = 127.0 . 0.1 , port = 2000 , worker _ threads = 0 ) snippet \u2192 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6784\u9020 \u5668 \u3002 \u53c2\u6570 \uff1a host ( str ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 \u5730\u5740 IP\u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a localhost \uff08 127.0 . 0.1 \uff09 \u3002 port ( int ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c \u968f\u540e \u7684 2001 \u3002 worker _ threads ( int ) - \u7528\u4e8e \u540e\u53f0 \u66f4\u65b0 \u7684 \u5de5\u4f5c \u7ebf\u7a0b \u6570 \u3002 \u5982\u679c \u4e3a 0 \uff0c \u5219 \u4f7f\u7528 \u6240\u6709 \u53ef\u7528 \u7684 \u5e76\u53d1 \u6027 \u3002 apply _ batch ( self , commands ) \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002 \u83b7\u53d6 \u5668 get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World \u8bbe\u7f6e \u5668 set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002 carla . CollisionEvent Inherited from carla . SensorData \u4e3a sensor . other . collision \u5b9a\u4e49 \u78b0\u649e \u6570\u636e \u7684 \u7c7b \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u78b0\u649e \u521b\u5efa \u4e00\u4e2a \u78b0\u649e \u6570\u636e \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u4e2a \u78b0\u649e \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002 carla . Color \u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( int ) \u7ea2\u8272 ( 0 - 255 ) \u3002 g ( int ) \u7eff\u8272 ( 0 - 255 ) \u3002 b ( int ) \u84dd\u8272 ( 0 - 255 ) \u3002 a ( int ) Alpha \u901a\u9053 ( 0 - 255 ) . \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 255 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( int ) g ( int ) b ( int ) a ( int ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . Color ) __ ne __ ( self , other = carla . Color ) __ str __ ( self ) carla . ColorConverter \u5b9a\u4e49 \u53ef \u5e94\u7528 \u4e8e carla . Image \u7684 \u8f6c\u6362 \u6a21\u5f0f \u7684 \u7c7b \uff0c \u4ee5 \u663e\u793a carla . Sensor \u63d0\u4f9b \u7684 \u4fe1\u606f \u3002 \u6df1\u5ea6 \u8f6c\u6362 \u4f1a \u5bfc\u81f4 \u7cbe\u5ea6 \u635f\u5931 \uff0c \u56e0\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6df1\u5ea6 \u68c0\u6d4b \u4e3a \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a 0 \u5230 255 \u4e4b\u95f4 \u7684 \u7070\u5ea6 \u503c \u3002 \u67e5\u770b carla . Sensor . listen \u4e2d \u7684 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u548c \u4fdd\u5b58 \u56fe\u50cf \u7684 \u793a\u4f8b sensor . camera . semantic _ segmentation \u7684 \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002 carla . DVSEvent \u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( int ) X \u50cf\u7d20 \u5750\u6807 \u3002 y ( int ) Y \u50cf\u7d20 \u5750\u6807 \u3002 t ( int ) \u4e8b\u4ef6 \u53d1\u751f \u65f6\u523b \u7684 \u65f6\u95f4 \u6233 \u3002 pol ( bool ) \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 True \u8868\u793a \u6b63\u6570 \uff0c False \u8868\u793a \u8d1f\u6570 \u3002 \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) carla . DVSEventArray \u5728 carla . DVSEvent \u4e2d \u5b9a\u4e49 \u4e8b\u4ef6 \u6d41 \u7684 \u7c7b \u3002 \u6b64\u7c7b \u6d41\u662f \u4efb\u610f \u5927\u5c0f \u7684 \u6570\u7ec4 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e8b\u4ef6 \u7684 \u6570\u91cf \u3002 \u4e3a\u4e86 \u65b9\u4fbf \u8d77 \u89c1 \uff0c \u8be5\u7c7b \u8fd8 \u5b58\u50a8 \u89c6\u91ce \u3001 \u56fe\u50cf \u7684 \u9ad8\u5ea6 \u548c \u5bbd\u5ea6 \u4ee5\u53ca \u65f6\u95f4 \u6233 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( \u5b57\u8282 ) \u65b9\u6cd5 to _ array ( self ) \u6309 \u4ee5\u4e0b \u987a\u5e8f \u5c06 \u4e8b\u4ef6 \u6d41 \u8f6c\u6362 \u4e3a int \u503c \u6570\u7ec4 [ x , y , t , pol ] \u3002 to _ array _ pol ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u8be5 \u6570\u7ec4 \u5177\u6709 \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 to _ array _ t ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \u6233 \u3002 to _ array _ x ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 X \u50cf\u7d20 \u5750\u6807 \u7684 \u6570\u7ec4 \u3002 to _ array _ y ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 Y \u50cf\u7d20 \u5750\u6807 \u6570\u7ec4 \u3002 to _ image ( self ) \u6309\u7167 \u4ee5\u4e0b \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \uff1a \u84dd\u8272 \u8868\u793a \u6b63 \u4e8b\u4ef6 \uff0c \u7ea2\u8272 \u8868\u793a \u8d1f \u4e8b\u4ef6 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . DebugHelper carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002 \u65b9\u6cd5 draw _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u4ece \u5f00\u59cb begin \u5230 \u7ed3\u675f end \u7ed8\u5236 \u4e00\u4e2a \u6307\u5411 \u8be5 \u65b9\u5411 \u7684 \u7bad\u5934 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - meters ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - meters ) - \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 Draws a box , ussually to act for object colliders . Parameters : 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 - meters ) - \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 - 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 _ 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 - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - meters ) - \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 - 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 _ 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 - meters ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - meters ) - \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 - meters ) - \u4eff\u771f \u4e2d \u6587\u672c \u5c45\u4e2d \u7684 \u4f4d\u7f6e \u3002 text ( str ) - \u65e8\u5728 \u5411 \u4e16\u754c \u5c55\u793a \u7684 \u6587\u672c \u3002 draw _ shadow ( bool ) - \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6295\u5c04 \u9634\u5f71 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 carla . EnvironmentObject \u8868\u793a \u5173\u5361 \u4e2d \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u7684 \u7c7b \uff0c \u8be5 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u53ef\u4ee5 \u662f \u4e0e \u5176\u4ed6 \u73af\u5883 \u5bf9\u8c61 \uff08 \u5373 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \uff09 \u5f62\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b9e\u4f8b \u53d8\u91cf transform ( carla . Transform ) \u5305\u542b \u73af\u5883 \u5bf9\u8c61 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u8fb9\u754c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 id ( int ) \u7528\u4e8e \u6807\u8bc6 \u5173\u5361 \u4e2d \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 name ( string ) \u73af\u5883 \u5bf9\u8c61 EnvironmentObject \u7684 \u540d\u79f0 \u3002 type ( carla . CityObjectLabel ) Semantic tag . \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) \u5c06 \u73af\u5883 \u5bf9\u8c61 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u5b83\u4eec \u3002 \u8fd4\u56de \uff1a str carla . FloatColor \u5b9a\u4e49 \u6d6e\u70b9 RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( float ) \u7ea2\u8272 \u3002 g ( float ) \u7eff\u8272 \u3002 b ( float ) \u84dd\u8272 \u3002 a ( float ) Alpha \u901a\u9053 \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor ) carla . GBufferTextureID \u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002 \u5b9e\u4f8b \u53d8\u91cf SceneColor \u7eb9\u7406 \u201c SceneColor \u201d \u5305\u542b \u56fe\u50cf \u7684 \u6700\u7ec8 \u989c\u8272 \u3002 SceneDepth \u7eb9\u7406 \u201c SceneDepth \u201d \u5305\u542b \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a - \u4ee5 \u4e16\u754c \u5355\u4f4d \u4e3a \u7ebf\u6027 \u3002 SceneStencil \u7eb9\u7406 \u201c SceneStencil \u201d \u5305\u542b \u6a21\u677f \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 GBufferA \u7eb9\u7406 \u201c GBufferA \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u6cd5\u7ebf \u5411\u91cf \u3002 Alpha \u901a\u9053 \u5305\u542b \u201c \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u6570\u636e \u201d \u3002 GBufferB \u7eb9\u7406 \u201c GBufferB \u201d \u5206\u522b \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u91d1\u5c5e \u3001 \u955c\u9762 \u548c \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Alpha \u901a\u9053 \u5305\u542b \u4e00\u4e2a \u63a9\u7801 \uff0c \u5176\u4e2d \u4f4e 4 \u4f4d \u8868\u793a \u7740\u8272 \u6a21\u578b \uff0c \u9ad8 4 \u4f4d \u5305\u542b \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 \u3002 GBufferC \u7eb9\u7406 \u201c GBufferC \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \uff0c \u4ee5\u53ca Alpha \u901a\u9053 \u4e2d \u7684 \u95f4\u63a5 \u8f90\u7167 \u7167\u5ea6 \u8f90\u7167\u5ea6 \u3002 \u5982\u679c \u4e0d \u5141\u8bb8 \u9759\u6001 \u95ea\u7535 \uff0c Alpha \u901a\u9053 \u5c06 \u5305\u542b \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 GBufferD \u201c GBufferD \u201d \u7684 \u5185\u5bb9 \u6839\u636e \u6e32\u67d3 \u5bf9\u8c61 \u7684 \u6750\u8d28 \u7740\u8272 \u6a21\u578b ( GBufferB ) \u7684 \u4e0d\u540c \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff1a MSM _ Subsurface ( 2 ) , MSM _ PreintegratedSkin ( 3 ) , MSM _ TwoSidedFoliage ( 6 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 MSM _ ClearCoat ( 4 ) : R : \u900f\u660e \u6d82\u5c42 \u3002 G : \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 MSM _ SubsurfaceProfile ( 5 ) : RGB : \u6b21 \u8868\u9762 \u8f6e\u5ed3 \u3002 MSM _ Hair ( 7 ) : RG : \u4e16\u754c \u6cd5\u7ebf \u3002 B : \u80cc\u5149 \u503c \u3002 MSM _ Cloth ( 8 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : Cloth value . MSM _ Eye ( 9 ) : RG : \u773c \u5207\u7ebf \u3002 B : \u8679\u819c \u63a9\u6a21 \u3002 A : \u8679\u819c \u8ddd\u79bb \u3002 GBufferE \u7eb9\u7406 \u201c GBufferE \u201d \u5305\u542b RGBA \u901a\u9053 \u4e2d \u9884\u5148 \u8ba1\u7b97 \u7684 \u9634\u5f71 \u56e0\u5b50 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 4 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 GBufferF \u7eb9\u7406 \u201c GBufferF \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u5207\u7ebf \u548c Alpha \u901a\u9053 \u4e2d \u7684 \u5f02\u6027 \u5404\u5411\u5f02\u6027 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 5 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 Velocity \u7eb9\u7406 \u201c \u901f\u5ea6 \u201d \u5305\u542b \u573a\u666f \u5bf9\u8c61 \u7684 \u5c4f\u5e55 \u7a7a\u95f4 \u901f\u5ea6 \u3002 SSAO \u7eb9\u7406 \u201c SSAO \u201d \u5305\u542b \u5c4f\u5e55 \u7a7a\u95f4 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u7eb9\u7406 \u3002 CustomDepth \u7eb9\u7406 \u201c CustomDepth \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u6570\u636e \u3002 CustomStencil \u7eb9\u7406 \u201c CustomStencil \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u677f \u6570\u636e \u3002 carla . GearPhysicsControl \u901a\u8fc7 \u5b9a\u4e49 \u6863\u4f4d \u4ee5\u53ca \u4f55\u65f6 \u8fd0\u884c \u8be5 \u6863\u4f4d \u6765 \u63d0\u4f9b \u5bf9 \u8f66\u8f86 \u53d8\u901f \u53d8\u901f\u7bb1 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u7684 \u8bbf\u95ee \u7684 \u7c7b \u3002 carla . VehiclePhysicsControl \u7a0d\u540e \u5c06 \u4f7f\u7528 \u5b83 \u6765 \u5e2e\u52a9 \u4eff\u771f \u7269\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf ratio ( float ) \u9f7f\u8f6e \u7684 \u4f20\u52a8 \u4f20\u52a8\u6bd4 \u3002 down _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94\u964d \u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 up _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94 \u5347\u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 \u65b9\u6cd5 __ init __ ( self , ratio = 1.0 , down _ ratio = 0.5 , up _ ratio = 0.65 ) \u53c2\u6570 \uff1a ratio ( float ) down _ ratio ( float ) up _ ratio ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . GearPhysicsControl ) __ ne __ ( self , other = carla . GearPhysicsControl ) __ str __ ( self ) carla . GeoLocation \u5305\u542b \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u4eff\u771f \u6570\u636e \u7684 \u7c7b \u3002 carla . Map \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u8f6c\u6362 \u4eff\u771f \u4f4d\u7f6e OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u6807\u8bb0 \u3002 \u5b9e\u4f8b \u53d8\u91cf latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - meters ) \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 - degrees ) longitude ( float - degrees ) altitude ( float - meters ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self ) carla . GnssMeasurement Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf altitude ( float - meters ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . IMUMeasurement Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7684 \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 \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 - radians ) \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 - rad / s ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . Image Inherited from carla . SensorData \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 - degrees ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u50cf\u7d20 \u6570\u636e \u7684 \u6241\u5e73 \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002 \u65b9\u6cd5 convert ( self , color _ converter ) \u6309\u7167 color _ converter \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \u3002 \u53c2\u6570 \uff1a color _ converter ( carla . ColorConverter ) save _ to _ disk ( self , path , color _ converter = Raw ) \u4f7f\u7528 \u5982\u4e0b \u6240\u793a \u7684 \u8f6c\u6362 \u8f6c\u6362\u5668 \u6a21\u5f0f color _ converter \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u9ed8\u8ba4 \u8f6c\u6362 \u6a21\u5f0f \u662f Raw \uff0c \u4e0d\u4f1a \u5bf9 \u56fe\u50cf \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5c06 \u5305\u542b \u56fe\u50cf \u7684 \u8def\u5f84 \u3002 color _ converter ( carla . ColorConverter ) - \u9ed8\u8ba4 Raw \u4e0d\u4f1a \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u5f62\u6210 \u56fe\u50cf \u7684 carla . Color \u4e0a\u9762 \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . Junction \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \uff0c \u4f53\u73b0 OpenDRIVE \u6587\u4ef6 \u4e2d \u63cf\u8ff0 \u7684 \u9053\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) OpenDRIVE \u6587\u4ef6 \u4e2d \u627e\u5230 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 bounding _ box ( carla . BoundingBox ) \u5c01\u88c5 \u8fde\u63a5 \u8f66\u9053 \u7684 \u8fb9\u754c \u6846 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - Type of lanes to get the waypoints . \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint ) ) carla . LabelledPoint \u4f7f\u7528 \u8bed\u4e49 \u6807\u7b7e \u8868\u793a \u7a7a\u95f4 \u4f4d\u7f6e \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 carla . Landmark \u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002 \u5b9e\u4f8b \u53d8\u91cf road _ id ( int ) \u5b9a\u4e49 \u6b64\u5730 \u6807\u7684 \u9053\u8def \u7684 OpenDRIVE ID \u3002 \u7531\u4e8e OpenDRIVE \u9053\u8def \u5b9a\u4e49 \uff0c \u8be5 \u9053\u8def \u53ef\u80fd \u4e0e \u5730\u6807 \u5f53\u524d \u5f71\u54cd \u7684 \u9053\u8def \u4e0d\u540c \u3002 \u8fd9\u79cd \u60c5\u51b5 \u4e3b\u8981 \u53d1\u751f \u5728 \u4e0d\u540c \u8def\u7ebf \u7684 \u9053\u8def \u5206\u53c9 \u5904 \u3002 \u793a\u4f8b \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u4e00\u6761 \u5206\u53c9 \u9053\u8def \u4e2d \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u4f46 \u5b83 \u4f1a \u5f71\u54cd \u6240\u6709 \u53ef\u80fd \u7684 \u8def\u7ebf \u3002 distance ( float - meters ) \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 - meters ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - meters ) \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 - degrees ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - meters ) \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 - meters ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - meters ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - meters ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - meters ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ lane _ validities ( self ) \u8fd4\u56de \u5730\u6807 \u5f71\u54cd \u7684 \u8f66\u9053 \u3002 \u7531\u4e8e \u53ef\u80fd \u5b58\u5728 \u5730\u6807 \u65e0\u6548 \u7684 \u7279\u5b9a \u8f66\u9053 \uff0c \u56e0\u6b64 \u8fd4\u56de \u7684 \u662f \u5305\u542b \u53d7 \u5f71\u54cd \u7684 lane _ id \u8303\u56f4 \u7684 \u5bf9 \u5217\u8868 \uff1a \u793a\u4f8b \uff1a \u5728 \u6709 5 \u6761 \u8f66\u9053 \u7684 \u9053\u8def \u4e2d \uff0c \u5176\u4e2d 3 \u4e0d\u53d7 \u6761\u4e0d\u53d7 \u5f71\u54cd \uff1a [ ( from _ lane1 , to _ lane2 ) , ( from _ lane4 , to _ lane5 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( int ) ) carla . LandmarkOrientation \u7528\u4e8e \u5b9a\u4e49 \u9053\u8def \u4e2d \u5730\u6807 \u65b9\u5411 \u7684 \u8f85\u52a9 \u7c7b \u3002 \u8be5 \u5b9a\u4e49 \u5e76\u975e \u76f4\u63a5 \u4ece OpenDRIVE \u8f6c\u6362 \u800c \u6765 \uff0c \u800c\u662f \u4e3a\u4e86 \u4fbf\u4e8e \u7406\u89e3 \u800c \u8fdb\u884c \u4e86 \u8f6c\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf Positive \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5b9a\u4e49 \u65b9\u5411 \u76f8\u540c \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 0 \u8f66\u9053 \u548c \u8d1f \u8f66\u9053 \uff09 \u3002 Negative \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 \u6b63 \u8f66\u9053 \uff09 \u3002 Both \u90fd \u4f1a \u5f71\u54cd \u6cbf \u9053\u8def \u4e24\u4e2a \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 carla . LandmarkType Helper \u7c7b \u5305\u542b OpenDRIVE \u6807\u51c6 \uff08 \u5fb7\u56fd 2017 \uff09 \u4e2d \u9ed8\u8ba4 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u5b9a\u4e49 \u7684 \u4e00\u7ec4 \u5e38\u7528 \u5730\u6807 \u7c7b\u578b \u3002 __ carla . Landmark \u4e0d \u5f15\u7528 \u6b64\u7c7b \u3002 \u5730\u6807 \u7c7b\u578b \u662f \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u6839\u636e \u6240 \u4f7f\u7528 \u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u4e0d\u540c \uff0c \u5176 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6b64\u7c7b \u4ec5 \u901a\u8fc7 \u5c06 \u9ed8\u8ba4 \u96c6\u4e2d \u7684 \u4e00\u4e9b \u6700 \u5e38\u7528 \u7684 \u63cf\u8ff0 \u4e3a \u679a\u4e3e \u6765 \u4f7f \u7ba1\u7406 \u5b83\u4eec \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u3002 \u5b9e\u4f8b \u53d8\u91cf Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002 carla . LaneChange \u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u4e0d \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \uff0c \u53ea\u80fd \u76f4\u884c \u3002 Right \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u53f3\u8f6c \u3002 Left \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u5de6\u8f6c \u3002 Both \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u90fd \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \u3002 carla . LaneInvasionEvent Inherited from carla . SensorData \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5373 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 crossed _ lane _ markings ( list ( carla . LaneMarking ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u7a7f\u8fc7 \u5e76 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . LaneMarking \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \u6536\u96c6 \u6709\u5173 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf color ( carla . LaneMarkingColor ) \u6807\u8bb0 \u7684 \u5b9e\u9645 \u989c\u8272 \u3002 lane _ change ( carla . LaneChange ) \u8de8\u8d8a \u6240\u8ff0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6743\u9650 \u3002 type ( carla . LaneMarkingType ) \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u3002 width ( float ) \u6c34\u5e73 \u8f66\u9053 \u6807\u8bb0 \u539a\u5ea6 \u3002 carla . LaneMarkingColor \u6839\u636e OpenDRIVE 1.4 \u5b9a\u4e49 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other carla . LaneMarkingType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Other Broken Solid SolidSolid SolidBroken BrokenSolid BrokenBroken BottsDots Grass Curb carla . LaneType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u53ef\u80fd \u901a\u9053 \u7c7b\u578b \u7684 \u7c7b \u3002 \u8be5 \u6807\u51c6 \u5b9a\u4e49 \u4e86 \u9053\u8def \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u5229\u7528 \u8def\u70b9 \u6765 \u83b7\u53d6 \u5f53\u524d \u548c \u76f8\u90bb \u8f66\u9053 \u7c7b\u578b \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Driving Stop Shoulder Biking Sidewalk Border Restricted Parking Bidirectional Median Special1 Special2 Special3 RoadWorks Tram Rail Entry Exit OffRamp OnRamp Any \u9664 NONE \u4e4b\u5916 \u7684 \u6240\u6709 \u7c7b\u578b \u3002 carla . LidarDetection carla . LidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u548c \u76f8\u5173 \u5f3a\u5ea6 \u3002 \u5b9e\u4f8b \u53d8\u91cf point ( carla . Location - meters ) 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 \u7ee7\u627f \u81ea carla . SensorData \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 ) Iterate over the carla . LidarDetection retrieved as data . __ 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 - meters ) \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 Inherited from carla . Vector3D \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float - meters ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - meters ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - meters ) 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 - meters \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 Return : carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . Map \u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002 \u5b9e\u4f8b \u53d8\u91cf name ( str ) \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5b83 \u5bf9\u5e94 \u4e8e \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u52a0\u8f7d \u7684 \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 . umap \uff0c \u7136\u540e \u5f15\u7528 . xodr \u9053\u8def \u63cf\u8ff0 \u3002 \u65b9\u6cd5 __ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - meters ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8fd1\u4f3c \u8ddd\u79bb \u3002 \u8fd4\u56de \uff1a list ( carla . Waypoint ) save _ to _ disk ( self , path ) \u5c06 \u5f53\u524d \u6620\u5c04 \u7684 . xodr OpenDRIVE \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u53c2\u6570 \uff1a path - \u4fdd\u5b58 \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 to _ opendrive ( self ) \u4ee5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u8fd4\u56de \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVe \u6587\u4ef6 \u3002 \u8fd4\u56de \uff1a str transform _ to _ geolocation ( self , location ) \u5c06 \u4eff\u771f \u4e2d \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u7ed9\u5b9a \u4f4d\u7f6e location \u8f6c\u6362 \u4e3a carla . GeoLocation \uff0c \u4ed6 \u8868\u793a \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5730\u56fe \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u5728 OpenDRIVE \u6807\u7b7e \u5185 \u5b9a\u4e49 \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) \u8fd4\u56de \uff1a carla . GeoLocation \u83b7\u53d6 \u5668 get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . MapLayer \u8868\u793a \u5730\u56fe \u7684 \u6bcf\u4e2a \u53ef \u7ba1\u7406 \u7ba1\u7406\u5c42 \u7684 \u7c7b \u3002 \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u8b66\u544a \uff1a \u53ea\u6709 \u201c Opt \u201d \u5730\u56fe \u624d\u80fd \u4f7f\u7528 \u5730\u56fe \u56fe\u5c42 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u672a \u9009\u62e9 \u4efb\u4f55 \u56fe\u5c42 \u3002 Buildings Decals Foliage Ground ParkedVehicles Particles Props StreetLights Walls All \u9009\u5b9a \u6240\u6709 \u56fe\u5c42 \u3002 carla . MaterialParameter \u8868\u793a \u6750\u6599 \u53c2\u6570 \u7684 \u7c7b \u3002 \u5e76\u975e \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u90fd \u5305\u542b \u6240\u6709 \u53c2\u6570 \u3002 \u5b9e\u4f8b \u53d8\u91cf Normal \u5bf9\u8c61 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 Diffuse \u7269\u4f53 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 AO _ Roughness _ Metallic _ Emissive \u6bcf\u4e2a \u989c\u8272 \u901a\u9053 \u4ee3\u8868 \u6750\u8d28 \u5c5e\u6027 \u7684 \u7eb9\u7406 \uff08 R \uff1a \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \uff0c G \uff1a \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c B \uff1a \u91d1\u5c5e \uff0c A \uff1a \u67d0\u4e9b \u7269\u4f53 \u4e2d \u7684 \u53d1\u5c04 / \u9ad8\u5ea6 \u8d34\u56fe \uff09 \u3002 Emissive \u53d1\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u4e9b \u7269\u4f53 \u4e2d \u3002 carla . ObstacleDetectionEvent \u7ee7\u627f \u81ea carla . SensorData \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 Inherited from carla . SensorData \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 - degrees ) \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 - meters ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - meters ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - meters ) \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 - meters ) \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 Instance Variables altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - meters ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor . Methods Dunder methods __ str __ ( self ) carla . RadarMeasurement Inherited from carla . SensorData Class that defines and gathers the measures registered by a sensor . other . radar , representing a wall of points in front of the sensor with a distance , angle and velocity in relation to it . The data consists of a carla . RadarDetection array . Learn more about this here . Instance Variables raw _ data ( bytes ) The complete information of the carla . RadarDetection the radar has registered . Methods Getters get _ detection _ count ( self ) Retrieves the number of entries generated , same as __ str __ ( ) . Dunder methods __ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . RadarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self ) carla . Rotation Class that represents a 3D rotation and therefore , an orientation in space . CARLA uses the Unreal Engine coordinates system . This is a Z - up left - handed system . The constructor method follows a specific order of declaration : ( pitch , yaw , roll ) , which corresponds to ( Y - rotation , Z - rotation , X - rotation ) . Unreal Engine ' s coordinates system . Instance Variables pitch ( float - degrees ) Y - axis rotation angle . yaw ( float - degrees ) Z - axis rotation angle . roll ( float - degrees ) X - axis rotation angle . Methods __ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) Parameters : pitch ( float - degrees ) - Y - axis rotation angle . yaw ( float - degrees ) - Z - axis rotation angle . roll ( float - degrees ) - X - axis rotation angle . Warning : The declaration order is different in CARLA ( pitch , yaw , roll ) , and in the Unreal Engine Editor ( roll , pitch , yaw ) . When working in a build from source , don ' t mix up the axes ' rotations . Getters get _ forward _ vector ( self ) Computes the vector pointing forward according to the rotation of the object . Return : carla . Vector3D get _ right _ vector ( self ) Computes the vector pointing to the right according to the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes the vector pointing upwards according to the rotation of the object . Return : carla . Vector3D Dunder methods __ eq __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ ne __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ str __ ( self ) Parses the axis ' orientations to string . carla . RssActorConstellationData Data structure that is provided within the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) . Instance Variables ego _ match _ object ( ad . map . match . Object ) The ego map matched information . ego _ route ( ad . map . route . FullRoute ) The ego route . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . other _ match _ object ( ad . map . match . Object ) The other object ' s map matched information . This is only valid if ' other _ actor ' is not ' None ' . other _ actor ( carla . Actor ) The other actor . This is ' None ' in case of query of default parameters or articial objects of kind ad . rss . world . ObjectType . ArtificialObject with no dedicated ' carla . Actor ' ( as e . g . for the road boundaries at the moment ) . Methods Dunder methods __ str __ ( self ) carla . RssActorConstellationResult Data structure that should be returned by the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) . Instance Variables rss _ calculation _ mode ( ad . rss . map . RssMode ) The calculation mode to be applied with the actor . restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) The mode for restricting speed limit . ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the ego vehicle . actor _ object _ type ( ad . rss . world . ObjectType ) The RSS object type to be used for the actor . actor _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the actor . Methods Dunder methods __ str __ ( self ) carla . RssEgoDynamicsOnRoute Part of the data contained inside a carla . RssResponse describing the state of the vehicle . The parameters include its current dynamics , and how it is heading regarding the target route . Instance Variables ego _ speed ( ad . physics . Speed ) The ego vehicle ' s speed . min _ stopping _ distance ( ad . physics . Distance ) The current minimum stopping distance . ego _ center ( ad . map . point . ENUPoint ) The considered enu position of the ego vehicle . ego _ heading ( ad . map . point . ENUHeading ) The considered heading of the ego vehicle . ego _ center _ within _ route ( bool ) States if the ego vehicle ' s center is within the route . crossing _ border ( bool ) States if the vehicle is already crossing one of the lane borders . route _ heading ( ad . map . point . ENUHeading ) The considered heading of the route . route _ nominal _ center ( ad . map . point . ENUPoint ) The considered nominal center of the current route . heading _ diff ( ad . map . point . ENUHeading ) The considered heading diff towards the route . route _ speed _ lat ( ad . physics . Speed ) The ego vehicle ' s speed component lat regarding the route . route _ speed _ lon ( ad . physics . Speed ) The ego vehicle ' s speed component lon regarding the route . route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route . route _ accel _ lon ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lon regarding the route . avg _ route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) The ego acceleration component lon regarding the route smoothened by an average filter . Methods Dunder methods __ str __ ( self ) carla . RssLogLevel Enum declaration used in carla . RssSensor to set the log level . Instance Variables trace debug info warn err critical off carla . RssResponse Inherited from carla . SensorData Class that contains the output of a carla . RssSensor . This is the result of the RSS calculations performed for the parent vehicle of the sensor . A carla . RssRestrictor will use the data to modify the carla . VehicleControl of the vehicle . Instance Variables response _ valid ( bool ) States if the response is valid . It is False if calculations failed or an exception occured . proper _ response ( ad . rss . state . ProperResponse ) The proper response that the RSS calculated for the vehicle . rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) Detailed RSS states at the current moment in time . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . world _ model ( ad . rss . world . WorldModel ) World model used for calculations . situation _ snapshot ( ad . rss . situation . SituationSnapshot ) Detailed RSS situations extracted from the world model . Methods Dunder methods __ str __ ( self ) carla . RssRestrictor These objects apply restrictions to a carla . VehicleControl . It is part of the Carla implementation of the C++ Library for Responsibility Sensitive Safety . This class works hand in hand with a rss sensor , which provides the data of the restrictions to be applied . Methods restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) Applies the safety restrictions given by a carla . RssSensor to a carla . VehicleControl . Parameters : vehicle _ control ( carla . VehicleControl ) - The input vehicle control to be restricted . proper _ response ( ad . rss . state . ProperResponse ) - Part of the response generated by the sensor . Contains restrictions to be applied to the acceleration of the vehicle . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - Part of the response generated by the sensor . Contains dynamics and heading of the vehicle regarding its route . vehicle _ physics ( carla . VehiclePhysicsControl ) - The current physics of the vehicle . Used to apply the restrictions properly . Return : carla . VehicleControl Setters set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level . carla . RssRoadBoundariesMode Enum declaration used in carla . RssSensor to enable or disable the stay on road feature . In summary , this feature considers the road boundaries as virtual objects . The minimum safety distance check is applied to these virtual walls , in order to make sure the vehicle does not drive off the road . Instance Variables On Enables the stay on road feature . Off Disables the stay on road feature . carla . RssSensor Inherited from carla . Sensor This sensor works a bit differently than the rest . Take look at the specific documentation , and the rss sensor reference to gain full understanding of it . The RSS sensor uses world information , and a RSS library to make safety checks on a vehicle . The output retrieved by the sensor is a carla . RssResponse . This will be used by a carla . RssRestrictor to modify a carla . VehicleControl before applying it to a vehicle . Instance Variables ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the ego vehicle if no actor constellation callback is registered . other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the rest of vehicles if no actor constellation callback is registered . pedestrian _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for pedestrians if no actor constellation callback is registered . road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) Switches the stay on road feature . By default is Off . routing _ targets ( vector < carla . Transform > ) The current list of targets considered to route the vehicle . If no routing targets are defined , a route is generated at random . Methods append _ routing _ target ( self , routing _ target ) Appends a new target position to the current route of the vehicle . Parameters : routing _ target ( carla . Transform ) - New target point for the route . Choose these after the intersections to force the route to take the desired turn . drop _ route ( self ) Discards the current route . If there are targets remaining in routing _ targets , creates a new route using those . Otherwise , a new route is created at random . register _ actor _ constellation _ callback ( self , callback ) Register a callback to customize a carla . RssActorConstellationResult . By this callback the settings of RSS parameters are done per actor constellation and the settings ( ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics ) have no effect . Parameters : callback - The function to be called whenever a RSS situation is about to be calculated . reset _ routing _ targets ( self ) Erases the targets that have been appended to the route . Setters set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level . set _ map _ log _ level ( self , log _ level ) Sets the map log level . Parameters : log _ level ( carla . RssLogLevel ) - New map log level . Dunder methods __ str __ ( self ) carla . SemanticLidarDetection Data contained inside a carla . SemanticLidarMeasurement . Each of these represents one of the points in the cloud with its location , the cosine of the incident angle , index of the object hit , and its semantic tag . Instance Variables point ( carla . Location - meters ) [ x , y , z ] coordinates of the point . cos _ inc _ angle ( float ) Cosine of the incident angle between the ray , and the normal of the hit object . object _ idx ( uint ) ID of the actor hit by the ray . object _ tag ( uint ) \u8bed\u4e49 \u6807\u7b7e of the component hit by the ray . Methods Dunder methods __ str __ ( self ) carla . SemanticLidarMeasurement Inherited from carla . SensorData Class that defines the semantic LIDAR data retrieved by a sensor . lidar . ray _ cast _ semantic . This essentially simulates a rotating LIDAR using ray - casting . Learn more about this here . Instance Variables channels ( int ) Number of lasers shot . horizontal _ angle ( float - radians ) Horizontal angle the LIDAR is rotated at the time of the measurement . raw _ data ( bytes ) Received list of raw detection points . Each point consists of [ x , y , z ] coordinates plus the cosine of the incident angle , the index of the hit actor , and its semantic tag . Methods save _ to _ disk ( self , path ) Saves the point cloud to disk as a . ply file describing data from 3D scanners . The files generated are ready to be used within MeshLab , an open - source system for processing said files . Just take into account that axis may differ from Unreal Engine and so , need to be reallocated . Parameters : path ( str ) Getters get _ point _ count ( self , channel ) Retrieves the number of points sorted by channel that are generated by this measure . Sorting by channel allows to identify the original channel for every point . Parameters : channel ( int ) Dunder methods __ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self ) carla . Sensor Inherited from carla . Actor Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - Depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector . Instance Variables is _ listening ( boolean ) When True the sensor will be waiting for data . Methods is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture . Dunder methods __ str __ ( self ) carla . SensorData Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement . Instance Variables frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated . carla . TextureColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel . Instance Variables width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . Methods __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color ) Setters set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . TextureFloatColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel . Instance Variables width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . Methods __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor ) Setters set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . Timestamp Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data . Instance Variables frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds . Methods __ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds ) Dunder methods __ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self ) carla . TrafficLight Inherited from carla . TrafficSign A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually . Instance Variables state ( carla . TrafficLightState ) Current state of the traffic light . Methods freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . Return : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator . Getters get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . Return : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . Return : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . Return : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . Return : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . Return : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . Return : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . Return : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . Return : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ yellow _ time Setters set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . Getter : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) Getter : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) Getter : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) Getter : carla . TrafficLight . get _ yellow _ time Dunder methods __ 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 Instance Variables Red Yellow Green Off Unknown carla . TrafficManager The traffic manager is a module built on top of the CARLA API in C++ . It handles any group of vehicles set to autopilot mode to populate the simulation with realistic urban traffic conditions and give the chance to user to customize some behaviours . The architecture of the traffic manager is divided in five different goal - oriented stages and a PID controller where the information flows until eventually , a carla . VehicleControl is applied to every vehicle registered in a traffic manager . In order to learn more , visit the documentation regarding this module . Methods auto _ lane _ change ( self , actor , enable ) Turns on or off lane changing behaviour for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle whose settings are changed . enable ( bool ) - True is default and enables lane changes . False will disable them . collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) Tunes on / off collisions between a vehicle and another specific actor . In order to ignore all other vehicles , traffic lights or walkers , use the specific ignore methods described in this same section . Parameters : reference _ actor ( carla . Actor ) - Vehicle that is going to ignore collisions . other _ actor ( carla . Actor ) - The actor that reference _ actor is going to ignore collisions with . detect _ collision ( bool ) - True is default and enables collisions . False will disable them . distance _ to _ leading _ vehicle ( self , actor , distance ) Sets the minimum distance in meters that a vehicle has to keep with the others . The distance is in meters and will affect the minimum moving distance . It is computed from front to back of the vehicle objects . Parameters : actor ( carla . Actor ) - Vehicle whose minimum distance is being changed . distance ( float - meters ) - Meters between both vehicles . force _ lane _ change ( self , actor , direction ) Forces a vehicle to change either to the lane on its left or right , if existing , as indicated in direction . This method applies the lane change no matter what , disregarding possible collisions . Parameters : actor ( carla . Actor ) - Vehicle being forced to change lanes . direction ( bool ) - Destination lane . True is the one on the right and False is the left one . global _ lane _ offset ( self , offset ) Sets a global lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : offset ( float ) - Lane offset displacement from the center line . global _ percentage _ speed _ difference ( self , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : percentage ( float ) - Percentage difference between intended speed and the current limit . ignore _ lights _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that traffic lights will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore traffic lights . perc ( float ) - Between 0 and 100 . Amount of times traffic lights will be ignored . ignore _ signs _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that stop signs will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore stop signs . perc ( float ) - Between 0 and 100 . Amount of times stop signs will be ignored . ignore _ vehicles _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with another vehicle will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore other vehicles . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . ignore _ walkers _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with walkers will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore walkers on scene . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . keep _ right _ rule _ percentage ( self , actor , perc ) During the localization stage , this method sets a percent chance that vehicle will follow the keep right rule , and stay in the right lane . Parameters : actor ( carla . Actor ) - Vehicle whose behaviour is being changed . perc ( float ) - Between 0 and 100 . Amount of times the vehicle will follow the keep right rule . random _ left _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a left lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . random _ right _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a right lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . shut _ down ( self ) Shuts down the traffic manager . update _ vehicle _ lights ( self , actor , do _ update ) Sets if the Traffic Manager is responsible of updating the vehicle lights , or not . Default is False . The traffic manager will not change the vehicle light status of a vehicle , unless its auto _ update _ status is st to True . Parameters : actor ( carla . Actor ) - Vehicle whose lights status is being changed . do _ update ( bool ) - If True the traffic manager will manage the vehicle lights for the specified vehicle . vehicle _ lane _ offset ( self , actor , offset ) Sets a lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : actor ( carla . Actor ) - Vehicle whose lane offset behaviour is being changed . offset ( float ) - Lane offset displacement from the center line . vehicle _ percentage _ speed _ difference ( self , actor , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : actor ( carla . Actor ) - Vehicle whose speed behaviour is being changed . percentage ( float ) - Percentage difference between intended speed and the current limit . Getters get _ all _ actions ( self , actor ) Returns all known actions ( i . e . road options and waypoints ) that an actor controlled by the Traffic Manager will perform in its next steps . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of lists with each element as follows - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ next _ action ( self , actor ) Returns the next known road option and waypoint that an actor controlled by the Traffic Manager will follow . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of two elements - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ port ( self ) Returns the port where the Traffic Manager is connected . If the object is a TM - Client , it will return the port of its TM - Server . Read the documentation to learn the difference . Return : uint16 Setters set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) Sets the upper and lower boundaries for dormant actors to be respawned near the hero vehicle . Parameters : lower _ bound ( float ) - The minimum distance in meters from the hero vehicle that a dormant actor will be respawned . upper _ bound ( float ) - The maximum distance in meters from the hero vehicle that a dormant actor will be respawned . Warning : The upper _ bound cannot be higher than the actor _ active _ distance . The lower _ bound cannot be less than 25 . set _ desired _ speed ( self , actor , speed ) Sets the speed of a vehicle to the specified value . Parameters : actor ( carla . Actor ) - Vehicle whose speed is being changed . speed ( float ) - Desired speed at which the vehicle will move . set _ global _ distance _ to _ leading _ vehicle ( self , distance ) Sets the minimum distance in meters that vehicles have to keep with the rest . The distance is in meters and will affect the minimum moving distance . It is computed from center to center of the vehicle objects . Parameters : distance ( float - meters ) - Meters between vehicles . set _ hybrid _ physics _ mode ( self , enabled = False ) Enables or disables the hybrid physics mode . In this mode , vehicle ' s farther than a certain radius from the ego vehicle will have their physics disabled . Computation cost will be reduced by not calculating vehicle dynamics . Vehicles will be teleported . Parameters : enabled ( bool ) - If True , enables the hybrid physics . set _ hybrid _ physics _ radius ( self , r = 50.0 ) With hybrid physics on , changes the radius of the area of influence where physics are enabled . Parameters : r ( float - meters ) - New radius where physics are enabled . set _ osm _ mode ( self , mode _ switch = True ) Enables or disables the OSM mode . This mode allows the user to run TM in a map created with the OSM feature . These maps allow having dead - end streets . Normally , if vehicles cannot find the next waypoint , TM crashes . If OSM mode is enabled , it will show a warning , and destroy vehicles when necessary . Parameters : mode _ switch ( bool ) - If True , the OSM mode is enabled . set _ path ( self , actor , path ) Sets a list of locations for a vehicle to follow while controlled by the Traffic Manager . Parameters : actor ( carla . Actor ) - The actor that must follow the given path . path ( list ) - The list of carla . Locations for the actor to follow . Warning : Ensure that the road topology doesn ' t impede the given path . set _ random _ device _ seed ( self , value ) Sets a specific random seed for the Traffic Manager , thereby setting it to be deterministic . Parameters : value ( int ) - Seed value for the random number generation of the Traffic Manager . set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) If True , vehicles in large maps will respawn near the hero vehicle when they become dormant . Otherwise , they will stay dormant until they are within actor _ active _ distance of the hero vehicle again . Parameters : mode _ switch ( bool ) set _ route ( self , actor , path ) Sets a list of route instructions for a vehicle to follow while controlled by the Traffic Manager . The possible route instructions are ' Left ' , ' Right ' , ' Straight ' . Parameters : actor ( carla . Actor ) - The actor that must follow the given route instructions . path ( list ) - The list of route instructions ( string ) for the vehicle to follow . Warning : Ensure that the lane topology doesn ' t impede the given route . set _ synchronous _ mode ( self , mode _ switch = True ) Sets the Traffic Manager to synchronous mode . In a multiclient situation , only the TM - Server can tick . Similarly , in a multiTM situation , only one TM - Server must tick . Use this method in the client that does the world tick , and right after setting the world to synchronous mode , to set which TM will be the master while in sync . Parameters : mode _ switch ( bool ) - If True , the TM synchronous mode is enabled . Warning : If the server is set to synchronous mode , the TM must be set to synchronous mode too in the same client that does the tick . carla . TrafficSign Inherited from carla . Actor Traffic signs appearing in the simulation except for traffic lights . These have their own class inherited from this in carla . TrafficLight . Right now , speed signs , stops and yields are mainly the ones implemented , but many others are borne in mind . Instance Variables trigger _ volume A carla . BoundingBox situated near a traffic sign where the carla . Actor who is inside can know about it . 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 Instance Variables 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 Methods __ init __ ( self , location , rotation ) Parameters : location ( carla . Location ) rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) transform ( self , in _ point ) Translates a 3D point from local to global coordinates using the current transformation as frame of reference . Parameters : in _ point ( carla . Location ) - Location in the space to which the transformation will be applied . transform _ vector ( self , in _ vector ) Rotates a vector using the current transformation as frame of reference , without applying translation . Use this to transform , for example , a velocity . Parameters : in _ vector ( carla . Vector3D ) - Vector to which the transformation will be applied . Getters get _ forward _ vector ( self ) Computes a forward vector using the rotation of the object . Return : carla . Vector3D get _ inverse _ matrix ( self ) Computes the 4 - matrix representation of the inverse transformation . Return : list ( list ( float ) ) get _ matrix ( self ) Computes the 4 - matrix representation of the transformation . Return : list ( list ( float ) ) get _ right _ vector ( self ) Computes a right vector using the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes an up vector using the rotation of the object . Return : carla . Vector3D Dunder methods __ eq __ ( self , other = carla . Transform ) Returns True if both location and rotation are equal for this and other . Return : bool __ ne __ ( self , other = carla . Transform ) Returns True if any location and rotation are not equal for this and other . Return : bool __ str __ ( self ) Parses both location and rotation to string . Return : str carla . Vector2D Helper class to perform 2D operations . Instance Variables x ( float ) X - axis value . y ( float ) Y - axis value . Methods __ init __ ( self , x = 0.0 , y = 0.0 ) Parameters : x ( float ) y ( float ) length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float Dunder methods __ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D ) carla . Vector3D Helper class to perform 3D operations . Instance Variables x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value . Methods __ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) Parameters : x ( float ) y ( float ) z ( float ) cross ( self , vector ) Computes the cross product between two vectors . Parameters : vector ( carla . Vector3D ) Return : carla . Vector3D distance ( self , vector ) Computes the distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ 2d ( self , vector ) Computes the 2 - dimensional distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared ( self , vector ) Computes the squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared _ 2d ( self , vector ) Computes the 2 - dimensional squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot ( self , vector ) Computes the dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot _ 2d ( self , vector ) Computes the 2 - dimensional dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float Getters get _ vector _ angle ( self , vector ) Computes the angle between a pair of 3D vectors in radians . Parameters : vector ( carla . Vector3D ) Return : float Dunder methods __ abs __ ( self ) Returns a Vector3D with the absolute value of the components x , y and z . Return : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D ) carla . Vehicle Inherited from carla . Actor One of the most important groups of actors in CARLA . These include any type of vehicle from cars to trucks , motorbikes , vans , bycicles and also official vehicles such as police cars . A wide set of these actors is provided in carla . BlueprintLibrary to facilitate differente requirements . Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client - side by the traffic manager . Instance Variables bounding _ box ( carla . BoundingBox ) Bounding box containing the geometry of the vehicle . Its location and rotation are relative to the vehicle it is attached to . Methods apply _ ackermann _ control ( self , control ) Applies an Ackermann control object on the next tick . Parameters : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) Applies a new Ackermann control settings to this vehicle in the next tick . Parameters : settings ( carla . AckermannControllerSettings ) Warning : This method does call the simulator . apply _ control ( self , control ) Applies a control object on the next tick , containing driving parameters such as throttle , steering or gear shifting . Parameters : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) Applies a physics control object in the next tick containing the parameters that define the vehicle as a corporeal body . E . g . : moment of inertia , mass , drag coefficient and many more . Parameters : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) Close the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to close all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . enable _ carsim ( self , simfile _ path ) Enables the CarSim physics solver for this particular vehicle . In order for this function to work , there needs to be a valid license manager running on the server side . The control inputs are redirected to CarSim which will provide the position and orientation of the vehicle for every frame . Parameters : simfile _ path ( str ) - Path to the . simfile file with the parameters of the simulation . enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) Enables Chrono physics on a spawned vehicle . Parameters : max _ substeps ( int ) - Max number of Chrono substeps . max _ substep _ delta _ time ( int ) - Max size of substep . vehicle _ json ( str ) - Path to vehicle json file relative to base _ json _ path . powertrain _ json ( str ) - Path to powertrain json file relative to base _ json _ path . tire _ json ( str ) - Path to tire json file relative to base _ json _ path . base _ json _ path ( str ) - Path to chrono / data / vehicle folder . E . g . , / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( the final / character is required ) . Note : Ensure that you have started the CARLA server with the ARGS = \" -- chrono \" flag . You will not be able to use Chrono physics without this flag set . Warning : Collisions are not supported . When a collision is detected , physics will revert to the default CARLA physics . is _ at _ traffic _ light ( self ) Vehicles will be affected by a traffic light when the light is red and the vehicle is inside its bounding box . The client returns whether a traffic light is affecting this vehicle according to last tick ( it does not call the simulator ) . Return : bool open _ door ( self , door _ idx ) Open the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to open all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . show _ debug _ telemetry ( self , enabled = True ) Enables or disables the telemetry on this vehicle . This shows information about the vehicles current state and forces applied to it in the spectator window . Only information for one vehicle can be shown so that , if you enable a second one , the previous will be automatically disabled . Parameters : enabled ( bool ) use _ carsim _ road ( self , enabled ) Enables or disables the usage of CarSim vs terrain file specified in the . simfile . By default this option is disabled and CarSim uses unreal engine methods to process the geometry of the scene . Parameters : enabled ( bool ) Getters get _ ackermann _ controller _ settings ( self ) Returns the last Ackermann control settings applied to this vehicle . Return : carla . AckermannControllerSettings Warning : This method does call the simulator to retrieve the value . get _ control ( self ) The client returns the control applied in the last tick . The method does not call the simulator . Return : carla . VehicleControl get _ failure _ state ( self ) Vehicle have failure states , to indicate that it is incapable of continuing its route . This function returns the vehicle ' s specific failure state , or in other words , the cause that resulted in it . Return : carla . VehicleFailureState get _ light _ state ( self ) Returns a flag representing the vehicle light state , this represents which lights are active or not . Return : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) The simulator returns the last physics control applied to this vehicle . Return : carla . VehiclePhysicsControl Warning : This method does call the simulator to retrieve the value . get _ speed _ limit ( self ) The client returns the speed limit affecting this vehicle according to last tick ( it does not call the simulator ) . The speed limit is updated when passing by a speed limit signal , so a vehicle might have none right after spawning . Return : float - km / h get _ traffic _ light ( self ) Retrieves the traffic light actor affecting this vehicle ( if any ) according to last tick . The method does not call the simulator . Return : carla . TrafficLight get _ traffic _ light _ state ( self ) The client returns the state of the traffic light affecting this vehicle according to last tick . The method does not call the simulator . If no traffic light is currently affecting the vehicle , returns green . Return : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) Returns the physics angle in degrees of a vehicle ' s wheel . Parameters : wheel _ location ( carla . VehicleWheelLocation ) Return : float Note : Returns the angle based on the physics of the wheel , not the visual angle . Setters set _ autopilot ( self , enabled = True , port = 8000 ) Registers or deletes the vehicle from a Traffic Manager ' s list . When True , the Traffic Manager passed as parameter will move the vehicle around . The autopilot takes place client - side . Parameters : enabled ( bool ) port ( uint16 ) - The port of the TM - Server where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 . set _ light _ state ( self , light _ state ) Sets the light state of a vehicle using a flag that represents the lights that are on and off . Parameters : light _ state ( carla . VehicleLightState ) Getter : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 Sets the angle of a vehicle ' s wheel visually . Parameters : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) Warning : Does not affect the physics of the vehicle . Dunder methods __ str __ ( self ) carla . VehicleAckermannControl Manages the basic movement of a vehicle using Ackermann driving controls . Instance Variables steer ( float ) Desired steer ( rad ) . Positive value is to the right . Default is 0.0 . steer _ speed ( float ) Steering velocity ( rad / s ) . Zero steering angle velocity means change the steering angle as quickly as possible . Default is 0.0 . speed ( float ) Desired speed ( m / s ) . Default is 0.0 . acceleration ( float ) Desired acceleration ( m / s2 ) Default is 0.0 . jerk ( float ) Desired jerk ( m / s3 ) . Default is 0.0 . Methods __ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) Parameters : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float ) Dunder methods __ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self ) carla . VehicleControl Manages the basic movement of a vehicle using typical driving controls . Instance Variables throttle ( float ) A scalar value to control the vehicle throttle [ 0.0 , 1.0 ] . Default is 0.0 . steer ( float ) A scalar value to control the vehicle steering [ - 1.0 , 1.0 ] . Default is 0.0 . brake ( float ) A scalar value to control the vehicle brake [ 0.0 , 1.0 ] . Default is 0.0 . hand _ brake ( bool ) Determines whether hand brake will be used . Default is False . reverse ( bool ) Determines whether the vehicle will move backwards . Default is False . manual _ gear _ shift ( bool ) Determines whether the vehicle will be controlled by changing gears manually . Default is False . gear ( int ) States which gear is the vehicle running on . Methods __ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) Parameters : throttle ( float ) - Scalar value between [ 0.0 , 1.0 ] . steer ( float ) - Scalar value between [ 0.0 , 1.0 ] . brake ( float ) - Scalar value between [ 0.0 , 1.0 ] . hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int ) Dunder methods __ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self ) carla . VehicleDoor Possible index representing the possible doors that can be open . Notice that not all possible doors are able to open in some vehicles . Instance Variables FL Front left door . FR Front right door . RL Back left door . RR Back right door . All Represents all doors . carla . VehicleFailureState Enum containing the different failure states of a vehicle , from which the it cannot recover . These are returned by get _ failure _ state ( ) and only Rollover is currently implemented . Instance Variables NONE Rollover Engine TirePuncture carla . VehicleLightState Class that recaps the state of the lights of a vehicle , these can be used as a flags . E . g : VehicleLightState . HighBeam & VehicleLightState . Brake will return True when both are active . Lights are off by default in any situation and should be managed by the user via script . The blinkers blink automatically . Warning : Right now , not all vehicles have been prepared to work with this functionality , this will be added to all of them in later updates . Instance Variables NONE All lights off . Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 This is reserved for certain vehicles that can have special lights , like a siren . Special2 This is reserved for certain vehicles that can have special lights , like a siren . All All lights on . carla . VehiclePhysicsControl Summarizes the parameters that will be used to simulate a carla . Vehicle as a physical object . The specific settings for the wheels though are stipulated using carla . WheelPhysicsControl . Instance Variables torque _ curve ( list ( carla . Vector2D ) ) Curve that indicates the torque measured in Nm for a specific RPM of the vehicle ' s engine . max _ rpm ( float ) The maximum RPM of the vehicle ' s engine . moi ( float - kg * m 2 ) The moment of inertia of the vehicle ' s engine . damping _ rate _ full _ throttle ( float ) Damping ratio when the throttle is maximum . damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) Damping ratio when the throttle is zero with clutch engaged . damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) Damping ratio when the throttle is zero with clutch disengaged . use _ gear _ autobox ( bool ) If True , the vehicle will have an automatic transmission . gear _ switch _ time ( float - seconds ) Switching time between gears . clutch _ strength ( float - kg * m 2 / s ) Clutch strength of the vehicle . final _ ratio ( float ) Fixed ratio from transmission to wheels . forward _ gears ( list ( carla . GearPhysicsControl ) ) List of objects defining the vehicle ' s gears . mass ( float - kilograms ) Mass of the vehicle . drag _ coefficient ( float ) Drag coefficient of the vehicle ' s chassis . center _ of _ mass ( carla . Vector3D - meters ) Center of mass of the vehicle . steering _ curve ( list ( carla . Vector2D ) ) Curve that indicates the maximum steering for a specific forward speed . use _ sweep _ wheel _ collision ( bool ) Enable the use of sweep for wheel collision . By default , it is disabled and it uses a simple raycast from the axis to the floor for each wheel . This option provides a better collision model in which the full volume of the wheel is checked against collisions . wheels ( list ( carla . WheelPhysicsControl ) ) List of wheel physics objects . This list should have 4 elements , where index 0 corresponds to the front left wheel , index 1 corresponds to the front right wheel , index 2 corresponds to the back left wheel and index 3 corresponds to the back right wheel . For 2 wheeled vehicles , set the same values for both front and back wheels . Methods __ 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 constructor . Parameters : 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 ) Dunder methods __ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self ) carla . VehicleWheelLocation enum representing the position of each wheel on a vehicle . Used to identify the target wheel when setting an angle in carla . Vehicle . set _ wheel _ steer _ direction or carla . Vehicle . get _ wheel _ steer _ angle . Instance Variables FL _ Wheel Front left wheel of a 4 wheeled vehicle . FR _ Wheel Front right wheel of a 4 wheeled vehicle . BL _ Wheel Back left wheel of a 4 wheeled vehicle . BR _ Wheel Back right wheel of a 4 wheeled vehicle . Front _ Wheel Front wheel of a 2 wheeled vehicle . Back _ Wheel Back wheel of a 2 wheeled vehicle . carla . Walker Inherited from carla . Actor This class inherits from the carla . Actor and defines pedestrians in the simulation . Walkers are a special type of actor that can be controlled either by an AI ( carla . WalkerAIController ) or manually via script , using a series of carla . WalkerControl to move these and their skeletons . Methods apply _ control ( self , control ) On the next tick , the control will move the walker in a certain direction with a certain speed . Jumps can be commanded too . Parameters : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) Set the blending value of the custom pose with the animation . The values can be : 0 : will show only the animation 1 : will show only the custom pose ( set by the user with set _ bones ( ) ) any other : will interpolate all the bone positions between animation and the custom pose . Parameters : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) Hide the custom pose and show the animation ( same as calling blend _ pose ( 0 ) ) . show _ pose ( self ) Show the custom pose and hide the animation ( same as calling blend _ pose ( 1 ) ) . Getters get _ bones ( self ) Return the structure with all the bone transformations from the actor . For each bone , we get the name and its transform in three different spaces : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent . Return : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) The client returns the control applied to this walker during last tick . The method does not call the simulator . Return : carla . WalkerControl get _ pose _ from _ animation ( self ) Make a copy of the current animation frame as the custom pose . Initially the custom pose is the neutral pedestrian pose . Setters set _ bones ( self , bones ) Set the bones of the actor . For each bone we want to set we use a relative transform . Only the bones in this list will be set . For each bone you need to setup this info : name : bone name relative : transform based on the bone parent . Parameters : bones ( carla . WalkerBoneControlIn - list of pairs ( bone _ name , transform ) for the bones that we want to set ) Getter : carla . Walker . get _ bones Dunder methods __ str __ ( self ) carla . WalkerAIController Inherited from carla . Actor Class that conducts AI control for a walker . The controllers are defined as actors , but they are quite different from the rest . They need to be attached to a parent actor during their creation , which is the walker they will be controlling ( take a look at carla . World if you are yet to learn on how to spawn actors ) . They also need for a special blueprint ( already defined in carla . BlueprintLibrary as \" controller . ai . walker \" ) . This is an empty blueprint , as the AI controller will be invisible in the simulation but will follow its parent around to dictate every step of the way . Methods go _ to _ location ( self , destination ) Sets the destination that the pedestrian will reach . Parameters : destination ( carla . Location - meters ) start ( self ) Enables AI control for its parent walker . stop ( self ) snippet \u2192 Disables AI control for its parent walker . Setters set _ max _ speed ( self , speed = 1.4 ) Sets a speed for the walker in meters per second . Parameters : speed ( float - m / s ) - An easy walking speed is set by default . Dunder methods __ str __ ( self ) carla . WalkerBoneControlIn This class grants bone specific manipulation for walker . The skeletons of walkers have been unified for clarity and the transform applied to each bone are always relative to its parent . Take a look here to learn more on how to create a walker and define its movement . Instance Variables bone _ transforms ( list ( [ name , transform ] ) ) List with the data for each bone we want to set : name : bone name relative : transform based on the bone parent . Methods __ init __ ( self , list ( name , transform ) ) Initializes an object containing moves to be applied on tick . These are listed with the name of the bone and the transform that will be applied to it . Parameters : list ( name , transform ) ( tuple ) Dunder methods __ str __ ( self ) carla . WalkerBoneControlOut This class is used to return all bone positions of a pedestrian . For each bone we get its name and its transform in three different spaces ( world , actor and relative ) . Instance Variables bone _ transforms ( list ( [ name , world , actor , relative ] ) ) List of one entry per bone with this information : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent . Methods Dunder methods __ str __ ( self ) carla . WalkerControl This class defines specific directions that can be commanded to a carla . Walker to control it via script . AI control can be settled for walkers , but the control used to do so is carla . WalkerAIController . Instance Variables direction ( carla . Vector3D ) Vector using global coordinates that will correspond to the direction of the walker . speed ( float - m / s ) A scalar value to control the walker ' s speed . jump ( bool ) If True , the walker will perform a jump . Methods __ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) Parameters : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool ) Dunder methods __ eq __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if these are all the same . __ ne __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if any of these differ . __ str __ ( self ) carla . Waypoint Waypoints in CARLA are described as 3D directed points . They have a carla . Transform which locates the waypoint in a road and orientates it according to the lane . They also store the road information belonging to said point regarding its lane and lane markings . All the information regarding waypoints and the waypoint API is retrieved as provided by the OpenDRIVE file . Once the client asks for the map object to the server , no longer communication will be needed . Instance Variables id ( int ) The identifier is generated using a hash combination of the road , section , lane and s values that correspond to said point in the OpenDRIVE geometry . The s precision is set to 2 centimeters , so 2 waypoints closer than 2 centimeters in the same road , section and lane , will have the same identificator . transform ( carla . Transform ) Position and orientation of the waypoint according to the current lane information . This data is computed the first time it is accessed . It is not created right away in order to ease computing costs when lots of waypoints are created but their specific transform is not needed . road _ id ( int ) OpenDRIVE road ' s id . section _ id ( int ) OpenDRIVE section ' s id , based on the order that they are originally defined . is _ junction ( bool ) True if the current Waypoint is on a junction as defined by OpenDRIVE . junction _ id ( int ) OpenDRIVE junction ' s id . For more information refer to OpenDRIVE documentation . lane _ id ( int ) OpenDRIVE lane ' s id , this value can be positive or negative which represents the direction of the current lane with respect to the road . For more information refer to OpenDRIVE documentation . s ( float ) OpenDRIVE s value of the current position . lane _ width ( float ) Horizontal size of the road at current s . lane _ change ( carla . LaneChange ) Lane change definition of the current Waypoint ' s location , based on the traffic rules defined in the OpenDRIVE file . It states if a lane change can be done and in which direction . lane _ type ( carla . LaneType ) The lane type of the current Waypoint , based on OpenDRIVE 1.4 standard . right _ lane _ marking ( carla . LaneMarking ) The right lane marking information based on the direction of the Waypoint . left _ lane _ marking ( carla . LaneMarking ) The left lane marking information based on the direction of the Waypoint . Methods next ( self , distance ) Returns a list of waypoints at a certain approximate distance from the current one . It takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the next waypoints . Return : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) Returns a list of waypoints from this to the end of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint ) previous ( self , distance ) This method does not return the waypoint previously visited by an actor , but a list of waypoints at an approximate distance but in the opposite direction of the lane . Similarly to next ( ) , it takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the previous waypoints . Return : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) Returns a list of waypoints from this to the start of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint ) Getters get _ junction ( self ) If the waypoint belongs to a junction this method returns the associated junction object . Otherwise returns null . Return : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) Returns a list of landmarks in the road from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) Returns a list of landmarks in the road of a specified type from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . type ( str ) - The type of landmarks to search . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ left _ lane ( self ) Generates a Waypoint at the center of the left lane based on the direction of the current Waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint get _ right _ lane ( self ) Generates a waypoint at the center of the right lane based on the direction of the current waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint Dunder methods __ str __ ( self ) carla . WeatherParameters This class defines objects containing lighting and weather specifications that can later be applied in carla . World . So far , these conditions only intervene with sensor . camera . rgb . They neither affect the actor ' s physics nor other sensors . Each of these parameters acts indepently from the rest . Increasing the rainfall will not automatically create puddles nor change the road ' s humidity . That makes for a better customization but means that realistic conditions need to be scripted . However an example of dynamic weather conditions working realistically can be found here . Instance Variables cloudiness ( float ) Values range from 0 to 100 , being 0 a clear sky and 100 one completely covered with clouds . precipitation ( float ) Rain intensity values range from 0 to 100 , being 0 none at all and 100 a heavy rain . precipitation _ deposits ( float ) Determines the creation of puddles . Values range from 0 to 100 , being 0 none at all and 100 a road completely capped with water . Puddles are created with static noise , meaning that they will always appear at the same locations . wind _ intensity ( float ) Controls the strenght of the wind with values from 0 , no wind at all , to 100 , a strong wind . The wind does affect rain direction and leaves from trees , so this value is restricted to avoid animation issues . sun _ azimuth _ angle ( float - degrees ) The azimuth angle of the sun . Values range from 0 to 360 . Zero is an origin point in a sphere determined by Unreal Engine . sun _ altitude _ angle ( float - degrees ) Altitude angle of the sun . Values range from - 90 to 90 corresponding to midnight and midday each . fog _ density ( float ) Fog concentration or thickness . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ distance ( float - meters ) Fog start distance . Values range from 0 to infinite . wetness ( float ) Wetness intensity . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ falloff ( float ) Density of the fog ( as in specific mass ) from 0 to infinity . The bigger the value , the more dense and heavy it will be , and the fog will reach smaller heights . Corresponds to Fog Height Falloff in the UE docs . If the value is 0 , the fog will be lighter than air , and will cover the whole scene . A value of 1 is approximately as dense as the air , and reaches normal - sized buildings . For values greater than 5 , the air will be so dense that it will be compressed on ground level . scattering _ intensity ( float ) Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . dust _ storm ( float ) Determines the strength of the dust storm weather . Values range from 0 to 100 . Methods __ 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 ) Method to initialize an object defining weather conditions . This class has some presets for different noon and sunset conditions listed in a note below . Parameters : cloudiness ( float ) - 0 is a clear sky , 100 complete overcast . precipitation ( float ) - 0 is no rain at all , 100 a heavy rain . precipitation _ deposits ( float ) - 0 means no puddles on the road , 100 means roads completely capped by rain . wind _ intensity ( float ) - 0 is calm , 100 a strong wind . sun _ azimuth _ angle ( float - degrees ) - 0 is an arbitrary North , 180 its corresponding South . sun _ altitude _ angle ( float - degrees ) - 90 is midday , - 90 is midnight . fog _ density ( float ) - Concentration or thickness of the fog , from 0 to 100 . fog _ distance ( float - meters ) - Distance where the fog starts in meters . wetness ( float ) - Humidity percentages of the road , from 0 to 100 . fog _ falloff ( float ) - Density ( specific mass ) of the fog , from 0 to infinity . scattering _ intensity ( float ) - Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) - Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) - Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . Note : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset . Dunder methods __ eq __ ( self , other ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self ) carla . WheelPhysicsControl Class that defines specific physical parameters for wheel objects that will be part of a carla . VehiclePhysicsControl to simulate vehicle it as a material object . Instance Variables tire _ friction ( float ) A scalar value that indicates the friction of the wheel . damping _ rate ( float ) Damping rate of the wheel . max _ steer _ angle ( float - degrees ) Maximum angle that the wheel can steer . radius ( float - centimeters ) Radius of the wheel . max _ brake _ torque ( float - N * m ) Maximum brake torque . max _ handbrake _ torque ( float - N * m ) Maximum handbrake torque . position ( carla . Vector3D ) World position of the wheel . This is a read - only parameter . long _ stiff _ value ( float - kg per radian ) Tire longitudinal stiffness per unit gravitational acceleration . Each vehicle has a custom value . lat _ stiff _ max _ load ( float ) Maximum normalized tire load at which the tire can deliver no more lateral stiffness no matter how much extra load is applied to the tire . Each vehicle has a custom value . lat _ stiff _ value ( float ) Maximum stiffness per unit of lateral slip . Each vehicle has a custom value . Methods __ 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 ) ) Parameters : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - degrees ) radius ( float - centimerers ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - meters ) Dunder methods __ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self ) carla . World World objects are created by the client to have a place for the simulation to happen . The world contains the map we can see , meaning the asset , not the navigation map . Navigation maps are part of the carla . Map class . It also manages the weather and actors present in it . There can only be one world per simulation , but it can be changed anytime . Instance Variables id ( int ) The ID of the episode associated with this world . Episodes are different sessions of a simulation . These change everytime a world is disabled or reloaded . Keeping track is useful to avoid possible issues . debug ( carla . DebugHelper ) Responsible for creating different shapes for debugging . Take a look at its class to learn more about it . Methods apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) This method applies settings contained in an object to the simulation running and returns the ID of the frame they were implemented . Parameters : world _ settings ( carla . WorldSettings ) Return : int Warning : If synchronous mode is enabled , and there is a Traffic Manager running , this must be set to sync mode too . Read this to learn how to do it . apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) Applies all texture fields in carla . MaterialParameter to the object object _ name . Empty textures here will not be applied . Parameters : 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 ) Applies all texture fields in carla . MaterialParameter to all objects in objects _ name _ list . Empty textures here will not be applied . Parameters : 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 ) Casts a ray from the specified initial _ location to final _ location . The function then detects all geometries intersecting the ray and returns a list of carla . LabelledPoint in order . Parameters : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . Return : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 Enable or disable a set of EnvironmentObject identified by their id . These objects will appear or disappear from the level . Parameters : env _ objects _ ids ( set ( int ) ) - Set of EnvironmentObject ids to change . enable ( bool ) - State to be applied to all the EnvironmentObject of the set . freeze _ all _ traffic _ lights ( self , frozen ) Freezes or unfreezes all traffic lights in the scene . Frozen traffic lights can be modified by the user but the time will not update them until unfrozen . Parameters : frozen ( bool ) ground _ projection ( self , location , search _ distance ) Projects the specified point downwards in the scene . The functions casts a ray from location in the direction ( 0 , 0 , - 1 ) ( downwards ) and returns a carla . LabelledPoint object with the first geometry this ray intersects ( usually the ground ) . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 Return : int project _ point ( self , location , direction , search _ distance ) Projects the specified point to the desired direction in the scene . The functions casts a ray from location in a direction and returns a carla . Labelled object with the first geometry this ray intersects . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . direction ( carla . Vector3D ) - The direction of projection . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) Stops the callback for callback _ id started with on _ tick ( ) . Parameters : callback _ id ( callback ) - The callback to be removed . The ID is returned when creating the callback . reset _ all _ traffic _ lights ( self ) Resets the cycle of all traffic lights in the map to the initial state . spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 The method will create , return and spawn an actor into the world . The actor will need an available blueprint to be created and a transform ( location and rotation ) . It can also be attached to a parent with a certain attachment type . Parameters : blueprint ( carla . ActorBlueprint ) - The reference from which the actor will be created . transform ( carla . Transform ) - Contains the location and orientation the actor will be spawned with . attach _ to ( carla . Actor ) - The parent object that the spawned actor will follow around . attachment ( carla . AttachmentType ) - Determines how fixed and rigorous should be the changes in position according to its parent object . Return : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u3002 It makes the client wait for a server tick . When the next frame is computed , the server will tick and return a snapshot describing the new state of the world . Parameters : seconds ( float - seconds ) - Maximum time the server should wait for a tick . It is set to 10.0 by default . Return : carla . WorldSnapshot Getters get _ actor ( self , actor _ id ) Looks up for an actor by ID and returns None if not found . Parameters : actor _ id ( int ) Return : carla . Actor get _ actors ( self , actor _ ids = None ) Retrieves a list of carla . Actor elements , either using a list of IDs provided or just listing everyone on stage . If an ID does not correspond with any actor , it will be excluded from the list returned , meaning that both the list of IDs and the list of actors may have different lengths . Parameters : actor _ ids ( list ) - The IDs of the actors being searched . By default it is set to None and returns every actor on scene . Return : carla . ActorList get _ blueprint _ library ( self ) Returns a list of actor blueprints available to ease the spawn of these into the world . Return : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) Returns a list of EnvironmentObject with the requested semantic tag . The method returns all the EnvironmentObjects in the level by default , but the query can be filtered by semantic tags with the argument object _ type . Parameters : object _ type ( carla . CityObjectLabel ) - Semantic tag of the EnvironmentObjects that are returned . Return : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) Returns an array of bounding boxes with location and rotation in world space . The method returns all the bounding boxes in the level by default , but the query can be filtered by semantic tags with the argument actor _ type . Parameters : actor _ type ( carla . CityObjectLabel ) - Semantic tag of the elements contained in the bounding boxes that are returned . Return : array ( carla . BoundingBox ) get _ lightmanager ( self ) Returns an instance of carla . LightManager that can be used to handle the lights in the scene . Return : carla . LightManager get _ map ( self ) Asks the server for the XODR containing the map file , and returns this parsed as a carla . Map . Return : carla . Map Warning : This method does call the simulation . It is expensive , and should only be called once . get _ names _ of _ all _ objects ( self ) Returns a list of the names of all objects in the scene that can be painted with the apply texture functions . Return : list ( str ) get _ random _ location _ from _ navigation ( self ) This can only be used with walkers . It retrieves a random location to be used as a destination using the go _ to _ location ( ) method in carla . WalkerAIController . This location will be part of a sidewalk . Roads , crosswalks and grass zones are excluded . The method does not take into consideration locations of existing actors so if a collision happens when trying to spawn an actor , it will return an error . Take a look at generate _ traffic . py for an example . Return : carla . Location get _ settings ( self ) Returns an object containing some data about the simulation such as synchrony between client and server or rendering mode . Return : carla . WorldSettings get _ snapshot ( self ) Returns a snapshot of the world at a certain moment comprising all the information about the actors . Return : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 Returns the spectator actor . The spectator is a special type of actor created by Unreal Engine , usually with ID = 0 , that acts as a camera and controls the view in the simulator window . Return : carla . Actor get _ traffic _ light ( self , landmark ) Provided a landmark , returns the traffic light object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic light . Return : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) Returns the traffic light actor corresponding to the indicated OpenDRIVE id . Parameters : traffic _ light _ id ( str ) - The OpenDRIVE id . Return : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) This function performs a search along the road in front of the specified waypoint and returns a list of traffic light actors found in the specified search distance . Parameters : waypoint ( carla . Waypoint ) - The input waypoint . distance ( float ) - Search distance . Return : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) Returns the list of traffic light actors affecting the junction indicated in junction _ id . Parameters : junction _ id ( int ) - The id of the junction . Return : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) Provided a landmark , returns the traffic sign object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic sign . Return : carla . TrafficSign get _ vehicles _ light _ states ( self ) Returns a dict where the keys are carla . Actor IDs and the values are carla . VehicleLightState of that vehicle . Return : dict get _ weather ( self ) Retrieves an object containing weather parameters currently active in the simulation , mainly cloudiness , precipitation , wind and sun position . Return : carla . WeatherParameters Setter : carla . World . set _ weather Setters set _ pedestrians _ cross _ factor ( self , percentage ) Parameters : percentage ( float ) - Sets the percentage of pedestrians that can walk on the road or cross at any point on the road . Value should be between 0.0 and 1.0 . For example , a value of 0.1 would allow 10% of pedestrians to walk on the road . Default is 0.0 . Note : Should be set before pedestrians are spawned . set _ pedestrians _ seed ( self , seed ) Parameters : seed ( int ) - Sets the seed to use for any random number generated in relation to pedestrians . Note : Should be set before pedestrians are spawned . If you want to repeat the same exact bodies ( blueprint ) for each pedestrian , then use the same seed in the Python code ( where the blueprint is choosen randomly ) and here , otherwise the pedestrians will repeat the same paths but the bodies will be different . set _ weather ( self , weather ) Changes the weather parameteres ruling the simulation to another ones defined in an object . Parameters : weather ( carla . WeatherParameters ) - New conditions to be applied . Getter : carla . World . get _ weather Dunder methods __ str __ ( self ) The content of the world is parsed and printed as a brief report of its current state . Return : string carla . WorldSettings The simulation has some advanced configuration options that are contained in this class and can be managed using carla . World and its methods . These allow the user to choose between client - server synchrony / asynchrony , activation of \" no rendering mode \" and either if the simulation should run with a fixed or variable time - step . Check this out if you want to learn about it . Instance Variables synchronous _ mode ( bool ) States the synchrony between client and server . When set to true , the server will wait for a client tick in order to move forward . It is false by default . no _ rendering _ mode ( bool ) When enabled , the simulation will run no rendering at all . This is mainly used to avoid overhead during heavy traffic simulations . It is false by default . fixed _ delta _ seconds ( float ) Ensures that the time elapsed between two steps of the simulation is fixed . Set this to 0.0 to work with a variable time - step , as happens by default . substepping ( bool ) Enable the physics substepping . This option allows computing some physics substeps between two render frames . If synchronous mode is set , the number of substeps and its time interval are fixed and computed are so they fulfilled the requirements of carla . WorldSettings . max _ substep and carla . WorldSettings . max _ substep _ delta _ time . These last two parameters need to be compatible with carla . WorldSettings . fixed _ delta _ seconds . Enabled by default . max _ substep _ delta _ time ( float ) Maximum delta time of the substeps . If the carla . WorldSettingsmax _ substep is high enough , the substep delta time would be always below or equal to this value . By default , the value is set to 0.01 . max _ substeps ( int ) The maximum number of physics substepping that are allowed . By default , the value is set to 10 . max _ culling _ distance ( float ) Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) Defines wether to use deterministic physics for pedestrian death animations or physical ragdoll simulation . When enabled , pedestrians have less realistic death animation but ensures determinism . When disabled , pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinsm can be ensured . tile _ stream _ distance ( float ) Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . Regions of the map within this range will be visible ( and capable of simulating physics ) . Regions outside this region will not be loaded . actor _ active _ distance ( float ) Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . Actors within this range will be active , and actors outside will become dormant . spectator _ as _ ego ( bool ) Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps . By default , the spectator will provoke loading of neighboring tiles in the absence of an ego actor . This might be inconvenient for applications that immediately spawn an ego actor . Methods __ 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 ) Creates an object containing desired settings that could later be applied through carla . World and its method apply _ settings ( ) . Parameters : synchronous _ mode ( bool ) - Set this to true to enable client - server synchrony . no _ rendering _ mode ( bool ) - Set this to true to completely disable rendering in the simulation . fixed _ delta _ seconds ( float - seconds ) - Set a fixed time - step in between frames . 0.0 means variable time - step and it is the default mode . max _ culling _ distance ( float - meters ) - Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) - Defines wether to use deterministic physics or ragdoll simulation for pedestrian deaths . tile _ stream _ distance ( float - meters ) - Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . actor _ active _ distance ( float - meters ) - Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . spectator _ as _ ego ( bool ) - Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps . Dunder methods __ eq __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self ) Parses the established settings to a string and shows them in command line . Return : str carla . WorldSnapshot This snapshot comprises all the information for every actor on scene at a certain moment of time . It creates and gives acces to a data structure containing a series of carla . ActorSnapshot . The client recieves a new snapshot on every tick that cannot be stored . Instance Variables id ( int ) A value unique for every snapshot to differentiate them . frame ( int ) Simulation frame in which the snapshot was taken . timestamp ( carla . Timestamp - seconds ) Precise moment in time when snapshot was taken . This class works in seconds as given by the operative system . Methods find ( self , actor _ id ) Given a certain actor ID , returns its corresponding snapshot or None if it is not found . Parameters : actor _ id ( int ) Return : carla . ActorSnapshot has _ actor ( self , actor _ id ) Given a certain actor ID , checks if there is a snapshot corresponding it and so , if the actor was present at that moment . Parameters : actor _ id ( int ) Return : bool Dunder methods __ eq __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are the same . Return : bool __ iter __ ( self ) Iterate over the carla . ActorSnapshot stored in the snapshot . __ len __ ( self ) Returns the amount of carla . ActorSnapshot present in this snapshot . Return : int __ ne __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are different . Return : bool command . ApplyAngularImpulse Command adaptation of add _ angular _ impulse ( ) in carla . Actor . Applies an angular impulse to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) Angular impulse applied to the actor . Methods __ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - degrees * s ) command . ApplyForce Command adaptation of add _ force ( ) in carla . Actor . Applies a force to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . force ( carla . Vector3D - N ) Force applied to the actor over time . Methods __ init __ ( self , actor , force ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . force ( carla . Vector3D - N ) command . ApplyImpulse Command adaptation of add _ impulse ( ) in carla . Actor . Applies an impulse to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - N * s ) Impulse applied to the actor . Methods __ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - N * s ) command . ApplyTargetAngularVelocity Command adaptation of set _ target _ angular _ velocity ( ) in carla . Actor . Sets the actor ' s angular velocity vector . Instance Variables actor _ id ( int ) Actor affected by the command . angular _ velocity ( carla . Vector3D - deg / s ) The 3D angular velocity that will be applied to the actor . Methods __ init __ ( self , actor , angular _ velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . angular _ velocity ( carla . Vector3D - deg / s ) - Angular velocity vector applied to the actor . command . ApplyTargetVelocity Command adaptation of set _ target _ velocity ( ) in carla . Actor . Instance Variables actor _ id ( int ) Actor affected by the command . velocity ( carla . Vector3D - m / s ) The 3D velocity applied to the actor . Methods __ init __ ( self , actor , velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . velocity ( carla . Vector3D - m / s ) - Velocity vector applied to the actor . command . ApplyTorque Command adaptation of add _ torque ( ) in carla . Actor . Applies a torque to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . torque ( carla . Vector3D - degrees ) Torque applied to the actor over time . Methods __ init __ ( self , actor , torque ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . torque ( carla . Vector3D - degrees ) command . ApplyTransform Command adaptation of set _ transform ( ) in carla . Actor . Sets a new transform to an actor . Instance Variables actor _ id ( int ) Actor affected by the command . transform ( carla . Transform ) Transformation to be applied . Methods __ init __ ( self , actor , transform ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform ) command . ApplyVehicleAckermannControl Command adaptation of apply _ ackermann _ control ( ) in carla . Vehicle . Applies a certain akermann control to a vehicle . Instance Variables actor _ id ( int ) Vehicle actor affected by the command . control ( carla . AckermannVehicleControl ) Vehicle ackermann control to be applied . Methods __ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . AckermannVehicleControl ) command . ApplyVehicleControl Command adaptation of apply _ control ( ) in carla . Vehicle . Applies a certain control to a vehicle . Instance Variables actor _ id ( int ) Vehicle actor affected by the command . control ( carla . VehicleControl ) Vehicle control to be applied . Methods __ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . VehicleControl ) command . ApplyVehiclePhysicsControl Command adaptation of apply _ physics _ control ( ) in carla . Vehicle . Applies a new physics control to a vehicle , modifying its physical parameters . Instance Variables actor _ id ( int ) Vehicle actor affected by the command . physics _ control ( carla . VehiclePhysicsControl ) Physics control to be applied . Methods __ init __ ( self , actor , physics _ control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . physics _ control ( carla . VehiclePhysicsControl ) command . ApplyWalkerControl Command adaptation of apply _ control ( ) in carla . Walker . Applies a control to a walker . Instance Variables actor _ id ( int ) Walker actor affected by the command . control ( carla . WalkerControl ) Walker control to be applied . Methods __ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . WalkerControl ) command . ApplyWalkerState Apply a state to the walker actor . Specially useful to initialize an actor them with a specific location , orientation and speed . Instance Variables actor _ id ( int ) Walker actor affected by the command . transform ( carla . Transform ) Transform to be applied . speed ( float - m / s ) Speed to be applied . Methods __ init __ ( self , actor , transform , speed ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform ) speed ( float - m / s ) command . DestroyActor Command adaptation of destroy ( ) in carla . Actor that tells the simulator to destroy this actor . It has no effect if the actor was already destroyed . When executed with apply _ batch _ sync ( ) in carla . Client there will be a command . Response that will return a boolean stating whether the actor was successfully destroyed . Instance Variables actor _ id ( int ) Actor affected by the command . Methods __ init __ ( self , actor ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . command . Response States the result of executing a command as either the ID of the actor to whom the command was applied to ( when succeeded ) or an error string ( when failed ) . actor ID , depending on whether or not the command succeeded . The method apply _ batch _ sync ( ) in carla . Client returns a list of these to summarize the execution of a batch . Instance Variables actor _ id ( int ) Actor to whom the command was applied to . States that the command was successful . error ( str ) A string stating the command has failed . Methods has _ error ( self ) Returns True if the command execution fails , and False if it was successful . Return : bool command . SetAutopilot Command adaptation of set _ autopilot ( ) in carla . Vehicle . Turns on / off the vehicle ' s autopilot mode . Instance Variables actor _ id ( int ) Actor that is affected by the command . enabled ( bool ) If autopilot should be activated or not . port ( uint16 ) Port of the Traffic Manager where the vehicle is to be registered or unlisted . Methods __ init __ ( self , actor , enabled , port = 8000 ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool ) port ( uint16 ) - The Traffic Manager port where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 . command . SetEnableGravity Command adaptation of set _ enable _ gravity ( ) in carla . Actor . Enables or disables gravity on an actor . Instance Variables actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool ) Methods __ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool ) command . SetSimulatePhysics Command adaptation of set _ simulate _ physics ( ) in carla . Actor . Determines whether an actor will be affected by physics or not . Instance Variables actor _ id ( int ) Actor affected by the command . enabled ( bool ) If physics should be activated or not . Methods __ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool ) command . SetVehicleLightState Command adaptation of set _ light _ state ( ) in carla . Vehicle . Sets the light state of a vehicle . Instance Variables actor _ id ( int ) Actor that is affected by the command . light _ state ( carla . VehicleLightState ) Defines the light state of a vehicle . Methods __ init __ ( self , actor , light _ state ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . light _ state ( carla . VehicleLightState ) - Recaps the state of the lights of a vehicle , these can be used as a flags . command . ShowDebugTelemetry Command adaptation of show _ debug _ telemetry ( ) in carla . Actor . Displays vehicle control telemetry data . Instance Variables actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool ) Methods __ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool ) command . SpawnActor Command adaptation of spawn _ actor ( ) in carla . World . Spawns an actor into the world based on the blueprint provided and the transform . If a parent is provided , the actor is attached to it . Instance Variables transform ( carla . Transform ) Transform to be applied . parent _ id ( int ) Identificator of the parent actor . Methods __ init __ ( self ) __ init __ ( self , blueprint , transform ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) Links another command to be executed right after . It allows to ease very common flows such as spawning a set of vehicles by command and then using this method to set them to autopilot automatically . Parameters : command ( any carla Command ) - a Carla command . 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 ; } Snippet for carla . World . enable _ environment _ objects # This recipe turn visibility off and on for two specifc buildings on the map # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # Access individual building IDs and save in a set building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # Toggle buildings off world . enable _ environment _ objects ( objects _ to _ toggle , False ) # Toggle buildings on world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ string # This recipe is a modification of lane _ explorer . py example . # It draws the path of an actor through the world , printing information at each waypoint . # ... 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 ) # Check if the vehicle is moving 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 ) # Update the current waypoint and sleep for some time current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # This recipe toggles off several layers in our \" _ Opt \" maps # Load town one with minimum layout ( roads , sidewalks , traffic lights and traffic signs ) # as well as buildings and parked vehicles world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # Toggle all buildings off world . unload _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all parked vehicles off world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # Sets the appearance of the vehicles front wheels to 40 \u00b0 . Vehicle physics will not be affected . 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 __ # This recipe shows in every script provided in PythonAPI / Examples # and it is used to parse the client creation arguments when running the script . 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 Snippet for carla . Map . get _ waypoint # This recipe shows the current traffic rules affecting the vehicle . # Shows the current lane type and if a lane change can be done in the actual lane or the surrounding ones . # ... 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 # This recipe attaches different camera / sensors to a vehicle with different attachments . # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # Default attachment : 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 Snippet for carla . WalkerAIController . stop # To destroy the pedestrians , stop them from the navigation , and then destroy the objects ( actor and controller ) . # stop pedestrians ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ id ) , 2 ) : all _ actors [ i ] . stop ( ) # destroy pedestrian ( actor and controller ) client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in all _ id ] ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ box # This recipe shows how to draw traffic light actor bounding boxes from a world snapshot . # .... debug = world . debug world _ snapshot = world . get _ snapshot ( ) for actor _ snapshot in world _ snapshot : actual _ actor = world . get _ actor ( actor _ snapshot . id ) if actual _ actor . type _ id = = ' traffic . traffic _ light ' : debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) # ... Copy snippet Close snippet Snippet for carla . World . get _ spectator # This recipe spawns an actor and the spectator camera at the actor ' s location . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ... Copy snippet Close snippet Snippet for carla . Sensor . listen # This recipe applies a color conversion to the image taken by a camera sensor , # so it is converted to a semantic segmentation image . # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . semantic _ segmentation ' ) # ... cc = carla . ColorConverter . CityScapesPalette camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame , cc ) ) # ... Copy snippet Close snippet Snippet for carla . TrafficLight . set _ state # This recipe changes from red to green the traffic light that affects the vehicle . # This is done by detecting if the vehicle actor is at a traffic light . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ...# ... if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : # world . hud . notification ( \" Traffic light changed ! Good to go ! \" ) traffic _ light . set _ state ( carla . TrafficLightState . Green ) # ... Copy snippet Close snippet Snippet for carla . ActorBlueprint . set _ attribute # This recipe changes attributes of different type of blueprint actors . # ... walker _ bp = world . get _ blueprint _ library ( ) . filter ( ' walker . pedestrian.0002 ' ) walker _ bp . set _ attribute ( ' is _ invincible ' , True ) # ... # Changes attribute randomly by the recommended value vehicle _ bp = wolrd . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) color = random . choice ( vehicle _ bp . get _ attribute ( ' color ' ) . recommended _ values ) vehicle _ bp . set _ attribute ( ' color ' , color ) # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , 600 ) camera _ bp . set _ attribute ( ' image _ size _ y ' , 600 ) # ... Copy snippet Close snippet Snippet for carla . Client . apply _ batch _ sync # 0 . Choose a blueprint fo the walkers world = client . get _ world ( ) blueprintsWalkers = world . get _ blueprint _ library ( ) . filter ( \" walker . pedestrian . * \" ) walker _ bp = random . choice ( blueprintsWalkers ) # 1 . Take all the random locations to spawn spawn _ points = [ ] for i in range ( 50 ) : spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) if ( spawn _ point . location ! = None ) : spawn _ points . append ( spawn _ point ) # 2 . Build the batch of commands to spawn the pedestrians batch = [ ] for spawn _ point in spawn _ points : walker _ bp = random . choice ( blueprintsWalkers ) batch . append ( carla . command . SpawnActor ( walker _ bp , spawn _ point ) ) # 2.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list . append ( { \" id \" : results [ i ] . actor _ id } ) # 3 . Spawn walker AI controllers for each walker batch = [ ] walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) for i in range ( len ( walkers _ list ) ) : batch . append ( carla . command . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , walkers _ list [ i ] [ \" id \" ] ) ) # 3.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list [ i ] [ \" con \" ] = results [ i ] . actor _ id # 4 . Put altogether the walker and controller ids for i in range ( len ( walkers _ list ) ) : all _ id . append ( walkers _ list [ i ] [ \" con \" ] ) all _ id . append ( walkers _ list [ i ] [ \" id \" ] ) all _ actors = world . get _ actors ( all _ id ) # wait for a tick to ensure client receives the last transform of the walkers we have just created world . wait _ for _ tick ( ) # 5 . initialize each controller and set target to walk to ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ actors ) , 2 ) : # start walker all _ actors [ i ] . start ( ) # set walk to random point all _ actors [ i ] . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # random max speed all _ actors [ i ] . set _ max _ speed ( 1 + random . random ( ) ) # max speed between 1 and 2 ( default is 1.4 m / s ) Copy snippet Close snippet Snippet for carla . World . load _ map _ layer # This recipe toggles on several layers in our \" _ Opt \" maps # Load town one with only minimum layout ( roads , sidewalks , traffic lights and traffic signs ) world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . None ) # Toggle all buildings on world . load _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all foliage on world . load _ map _ layer ( carla . MapLayer . Foliage ) # Toggle all parked vehicles on world . load _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet function ButtonAction ( container _ name ) { if ( window _ big ) { snipet _ name = container _ name . replace ( ' - snipet _ button ' , ' - snipet ' ) ; document . getElementById ( \" snipets - container \" ) . innerHTML = document . getElementById ( snipet _ name ) . innerHTML ; } else { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; code _ name = container _ name . replace ( ' - snipet _ button ' , ' - code ' ) ; var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( code _ name ) ) ; alert ( range ) ; } } function WindowResize ( ) { if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } } var window _ big ; if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } buttons = document . getElementsByClassName ( ' SnipetButton ' ) for ( let i = 0 ; i < buttons . length ; i ++ ) { buttons [ i ] . addEventListener ( \" click \" , function ( ) { ButtonAction ( buttons [ i ] . id ) ; } , true ) ; } window . onresize = WindowResize ;","title":"Python API \u53c2\u8003"},{"location":"python_api/#python-api","text":"\u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002","title":"Python API \u53c2\u8003"},{"location":"python_api/#carlaackermanncontrollersettings","text":"\u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002","title":"carla . AckermannControllerSettings"},{"location":"python_api/#_1","text":"speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_2","text":"__ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder-methods","text":"__ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self )","title":"Dunder methods"},{"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/#_3","text":"attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_4","text":"add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - degrees ) - \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/#_5","text":"get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - meters \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_6","text":"set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - meters ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#dunder-methods_1","text":"__ str __ ( self )","title":"Dunder methods"},{"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/#_7","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/#_8","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/#dunder-methods_2","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 Return : bool __ str __ ( self )","title":"Dunder methods"},{"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/#_9","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/#_10","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/#_11","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/#_12","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/#_13","text":"set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#dunder","text":"__ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaactorlist","text":"\u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002","title":"carla . ActorList"},{"location":"python_api/#_14","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/#_15","text":"id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_16","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_17","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/#_18","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/#_19","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/#_20","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 Return : 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/#_21","text":"extent ( carla . Vector3D - meters ) \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 - meters ) \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/#_22","text":"__ init __ ( self , location , extent ) \u53c2\u6570 \uff1a location ( carla . Location ) - \u76f8\u5bf9 \u4e8e \u5176\u7236 \u6846 \u7684 \u4e2d\u5fc3 \u3002 extent ( carla . Vector3D - meters ) - \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 - meters ) - \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/#_23","text":"get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#dunder_3","text":"__ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlacityobjectlabel","text":"\u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"carla . CityObjectLabel"},{"location":"python_api/#_24","text":"None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaclient","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002","title":"carla . Client"},{"location":"python_api/#_25","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\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_26","text":"get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_27","text":"set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlacollisionevent","text":"Inherited from carla . SensorData \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/#_28","text":"actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlacolor","text":"\u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . Color"},{"location":"python_api/#_29","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/#_30","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/#_31","text":"CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carladvsevent","text":"\u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . DVSEvent"},{"location":"python_api/#_32","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/#_33","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/#_34","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/#_35","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/#_36","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carladebughelper","text":"carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002","title":"carla . DebugHelper"},{"location":"python_api/#_37","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 - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - meters ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - meters ) - \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 Draws a box , ussually to act for object colliders . Parameters : 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 - meters ) - \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 - 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 _ 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 - meters ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - meters ) - \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 - 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 _ 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 - meters ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - meters ) - \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 - meters ) - \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/#_38","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/#_39","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/#_40","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/#_41","text":"__ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_7","text":"__ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlagbuffertextureid","text":"\u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002","title":"carla . GBufferTextureID"},{"location":"python_api/#_42","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/#_43","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/#_44","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/#_45","text":"latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - meters ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_46","text":"__ init __ ( self , latitude = 0.0 , longitude = 0.0 , altitude = 0.0 ) \u53c2\u6570 \uff1a latitude ( float - degrees ) longitude ( float - degrees ) altitude ( float - meters )","title":"\u65b9\u6cd5"},{"location":"python_api/#_47","text":"__ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlagnssmeasurement","text":"Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002","title":"carla . GnssMeasurement"},{"location":"python_api/#_48","text":"altitude ( float - meters ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - degrees ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_49","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_50","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimumeasurement","text":"Inherited from carla . SensorData \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7684 \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 \u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002","title":"carla . IMUMeasurement"},{"location":"python_api/#_51","text":"accelerometer ( carla . Vector3D - m / s 2 ) \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 compass ( float - radians ) \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 - rad / s ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_52","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_53","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimage","text":"Inherited from carla . SensorData \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/#_54","text":"fov ( float - degrees ) \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/#_55","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/#_56","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/#_57","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/#_58","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_59","text":"get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - Type of lanes to get the waypoints . \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/#_60","text":"location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalandmark","text":"\u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002","title":"carla . Landmark"},{"location":"python_api/#_61","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 - meters ) \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 - meters ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - meters ) \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 - degrees ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - meters ) \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 - meters ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - meters ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - meters ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - meters ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_62","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_63","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/#_64","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/#_65","text":"Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanechange","text":"\u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002","title":"carla . LaneChange"},{"location":"python_api/#_66","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":"Inherited from carla . SensorData \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . LaneInvasionEvent"},{"location":"python_api/#_67","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/#_68","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_69","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/#_70","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/#_71","text":"Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanemarkingtype","text":"\u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002","title":"carla . LaneMarkingType"},{"location":"python_api/#_72","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/#_73","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/#_74","text":"point ( carla . Location - meters ) 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/#_75","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_76","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalidarmeasurement","text":"\u7ee7\u627f \u81ea carla . SensorData \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/#_77","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/#_78","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/#_79","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/#_80","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . LidarDetection retrieved as data . __ 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/#_81","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 - meters ) \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/#_82","text":"turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_83","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/#_84","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/#_85","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/#_86","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/#_87","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/#_88","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/#_89","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":"Inherited from carla . Vector3D \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002","title":"carla . Location"},{"location":"python_api/#_90","text":"x ( float - meters ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - meters ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - meters ) Z \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_91","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 - meters","title":"\u65b9\u6cd5"},{"location":"python_api/#_92","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 Return : carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlamap","text":"\u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002","title":"carla . Map"},{"location":"python_api/#_93","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/#_94","text":"__ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - meters ) - \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/#_95","text":"get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_96","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/#_97","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/#_98","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":"\u7ee7\u627f \u81ea carla . SensorData \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/#_99","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/#_100","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_101","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/#_102","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":"Inherited from carla . SensorData \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/#_103","text":"fov ( float - degrees ) \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/#_104","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_105","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/#_106","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/#_107","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/#_108","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/#_109","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/#_110","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/#_111","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 - meters ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - meters ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - meters ) \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 - meters ) \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/#_112","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_113","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/#instance-variables","text":"altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - meters ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor .","title":"Instance Variables"},{"location":"python_api/#methods","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_3","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlaradarmeasurement","text":"Inherited from carla . SensorData Class that defines and gathers the measures registered by a sensor . other . radar , representing a wall of points in front of the sensor with a distance , angle and velocity in relation to it . The data consists of a carla . RadarDetection array . Learn more about this here .","title":"carla . RadarMeasurement"},{"location":"python_api/#instance-variables_1","text":"raw _ data ( bytes ) The complete information of the carla . RadarDetection the radar has registered .","title":"Instance Variables"},{"location":"python_api/#methods_1","text":"","title":"Methods"},{"location":"python_api/#getters","text":"get _ detection _ count ( self ) Retrieves the number of entries generated , same as __ str __ ( ) .","title":"Getters"},{"location":"python_api/#dunder-methods_4","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . RadarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarotation","text":"Class that represents a 3D rotation and therefore , an orientation in space . CARLA uses the Unreal Engine coordinates system . This is a Z - up left - handed system . The constructor method follows a specific order of declaration : ( pitch , yaw , roll ) , which corresponds to ( Y - rotation , Z - rotation , X - rotation ) . Unreal Engine ' s coordinates system .","title":"carla . Rotation"},{"location":"python_api/#instance-variables_2","text":"pitch ( float - degrees ) Y - axis rotation angle . yaw ( float - degrees ) Z - axis rotation angle . roll ( float - degrees ) X - axis rotation angle .","title":"Instance Variables"},{"location":"python_api/#methods_2","text":"__ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) Parameters : pitch ( float - degrees ) - Y - axis rotation angle . yaw ( float - degrees ) - Z - axis rotation angle . roll ( float - degrees ) - X - axis rotation angle . Warning : The declaration order is different in CARLA ( pitch , yaw , roll ) , and in the Unreal Engine Editor ( roll , pitch , yaw ) . When working in a build from source , don ' t mix up the axes ' rotations .","title":"Methods"},{"location":"python_api/#getters_1","text":"get _ forward _ vector ( self ) Computes the vector pointing forward according to the rotation of the object . Return : carla . Vector3D get _ right _ vector ( self ) Computes the vector pointing to the right according to the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes the vector pointing upwards according to the rotation of the object . Return : carla . Vector3D","title":"Getters"},{"location":"python_api/#dunder-methods_5","text":"__ eq __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ ne __ ( self , other = carla . Rotation ) Returns True if both rotations represent the same orientation for every axis . Return : bool __ str __ ( self ) Parses the axis ' orientations to string .","title":"Dunder methods"},{"location":"python_api/#carlarssactorconstellationdata","text":"Data structure that is provided within the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) .","title":"carla . RssActorConstellationData"},{"location":"python_api/#instance-variables_3","text":"ego _ match _ object ( ad . map . match . Object ) The ego map matched information . ego _ route ( ad . map . route . FullRoute ) The ego route . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . other _ match _ object ( ad . map . match . Object ) The other object ' s map matched information . This is only valid if ' other _ actor ' is not ' None ' . other _ actor ( carla . Actor ) The other actor . This is ' None ' in case of query of default parameters or articial objects of kind ad . rss . world . ObjectType . ArtificialObject with no dedicated ' carla . Actor ' ( as e . g . for the road boundaries at the moment ) .","title":"Instance Variables"},{"location":"python_api/#methods_3","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_6","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssactorconstellationresult","text":"Data structure that should be returned by the callback registered by RssSensor . register _ actor _ constellation _ callback ( ) .","title":"carla . RssActorConstellationResult"},{"location":"python_api/#instance-variables_4","text":"rss _ calculation _ mode ( ad . rss . map . RssMode ) The calculation mode to be applied with the actor . restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) The mode for restricting speed limit . ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the ego vehicle . actor _ object _ type ( ad . rss . world . ObjectType ) The RSS object type to be used for the actor . actor _ dynamics ( ad . rss . world . RssDynamics ) The RSS dynamics to be applied for the actor .","title":"Instance Variables"},{"location":"python_api/#methods_4","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_7","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssegodynamicsonroute","text":"Part of the data contained inside a carla . RssResponse describing the state of the vehicle . The parameters include its current dynamics , and how it is heading regarding the target route .","title":"carla . RssEgoDynamicsOnRoute"},{"location":"python_api/#instance-variables_5","text":"ego _ speed ( ad . physics . Speed ) The ego vehicle ' s speed . min _ stopping _ distance ( ad . physics . Distance ) The current minimum stopping distance . ego _ center ( ad . map . point . ENUPoint ) The considered enu position of the ego vehicle . ego _ heading ( ad . map . point . ENUHeading ) The considered heading of the ego vehicle . ego _ center _ within _ route ( bool ) States if the ego vehicle ' s center is within the route . crossing _ border ( bool ) States if the vehicle is already crossing one of the lane borders . route _ heading ( ad . map . point . ENUHeading ) The considered heading of the route . route _ nominal _ center ( ad . map . point . ENUPoint ) The considered nominal center of the current route . heading _ diff ( ad . map . point . ENUHeading ) The considered heading diff towards the route . route _ speed _ lat ( ad . physics . Speed ) The ego vehicle ' s speed component lat regarding the route . route _ speed _ lon ( ad . physics . Speed ) The ego vehicle ' s speed component lon regarding the route . route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route . route _ accel _ lon ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lon regarding the route . avg _ route _ accel _ lat ( ad . physics . Acceleration ) The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) The ego acceleration component lon regarding the route smoothened by an average filter .","title":"Instance Variables"},{"location":"python_api/#methods_5","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_8","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssloglevel","text":"Enum declaration used in carla . RssSensor to set the log level .","title":"carla . RssLogLevel"},{"location":"python_api/#instance-variables_6","text":"trace debug info warn err critical off","title":"Instance Variables"},{"location":"python_api/#carlarssresponse","text":"Inherited from carla . SensorData Class that contains the output of a carla . RssSensor . This is the result of the RSS calculations performed for the parent vehicle of the sensor . A carla . RssRestrictor will use the data to modify the carla . VehicleControl of the vehicle .","title":"carla . RssResponse"},{"location":"python_api/#instance-variables_7","text":"response _ valid ( bool ) States if the response is valid . It is False if calculations failed or an exception occured . proper _ response ( ad . rss . state . ProperResponse ) The proper response that the RSS calculated for the vehicle . rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) Detailed RSS states at the current moment in time . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) Current ego vehicle dynamics regarding the route . world _ model ( ad . rss . world . WorldModel ) World model used for calculations . situation _ snapshot ( ad . rss . situation . SituationSnapshot ) Detailed RSS situations extracted from the world model .","title":"Instance Variables"},{"location":"python_api/#methods_6","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_9","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlarssrestrictor","text":"These objects apply restrictions to a carla . VehicleControl . It is part of the Carla implementation of the C++ Library for Responsibility Sensitive Safety . This class works hand in hand with a rss sensor , which provides the data of the restrictions to be applied .","title":"carla . RssRestrictor"},{"location":"python_api/#methods_7","text":"restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) Applies the safety restrictions given by a carla . RssSensor to a carla . VehicleControl . Parameters : vehicle _ control ( carla . VehicleControl ) - The input vehicle control to be restricted . proper _ response ( ad . rss . state . ProperResponse ) - Part of the response generated by the sensor . Contains restrictions to be applied to the acceleration of the vehicle . ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - Part of the response generated by the sensor . Contains dynamics and heading of the vehicle regarding its route . vehicle _ physics ( carla . VehiclePhysicsControl ) - The current physics of the vehicle . Used to apply the restrictions properly . Return : carla . VehicleControl","title":"Methods"},{"location":"python_api/#setters","text":"set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level .","title":"Setters"},{"location":"python_api/#carlarssroadboundariesmode","text":"Enum declaration used in carla . RssSensor to enable or disable the stay on road feature . In summary , this feature considers the road boundaries as virtual objects . The minimum safety distance check is applied to these virtual walls , in order to make sure the vehicle does not drive off the road .","title":"carla . RssRoadBoundariesMode"},{"location":"python_api/#instance-variables_8","text":"On Enables the stay on road feature . Off Disables the stay on road feature .","title":"Instance Variables"},{"location":"python_api/#carlarsssensor","text":"Inherited from carla . Sensor This sensor works a bit differently than the rest . Take look at the specific documentation , and the rss sensor reference to gain full understanding of it . The RSS sensor uses world information , and a RSS library to make safety checks on a vehicle . The output retrieved by the sensor is a carla . RssResponse . This will be used by a carla . RssRestrictor to modify a carla . VehicleControl before applying it to a vehicle .","title":"carla . RssSensor"},{"location":"python_api/#instance-variables_9","text":"ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the ego vehicle if no actor constellation callback is registered . other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for the rest of vehicles if no actor constellation callback is registered . pedestrian _ dynamics ( ad . rss . world . RssDynamics ) States the RSS parameters that the sensor will consider for pedestrians if no actor constellation callback is registered . road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) Switches the stay on road feature . By default is Off . routing _ targets ( vector < carla . Transform > ) The current list of targets considered to route the vehicle . If no routing targets are defined , a route is generated at random .","title":"Instance Variables"},{"location":"python_api/#methods_8","text":"append _ routing _ target ( self , routing _ target ) Appends a new target position to the current route of the vehicle . Parameters : routing _ target ( carla . Transform ) - New target point for the route . Choose these after the intersections to force the route to take the desired turn . drop _ route ( self ) Discards the current route . If there are targets remaining in routing _ targets , creates a new route using those . Otherwise , a new route is created at random . register _ actor _ constellation _ callback ( self , callback ) Register a callback to customize a carla . RssActorConstellationResult . By this callback the settings of RSS parameters are done per actor constellation and the settings ( ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics ) have no effect . Parameters : callback - The function to be called whenever a RSS situation is about to be calculated . reset _ routing _ targets ( self ) Erases the targets that have been appended to the route .","title":"Methods"},{"location":"python_api/#setters_1","text":"set _ log _ level ( self , log _ level ) Sets the log level . Parameters : log _ level ( carla . RssLogLevel ) - New log level . set _ map _ log _ level ( self , log _ level ) Sets the map log level . Parameters : log _ level ( carla . RssLogLevel ) - New map log level .","title":"Setters"},{"location":"python_api/#dunder-methods_10","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasemanticlidardetection","text":"Data contained inside a carla . SemanticLidarMeasurement . Each of these represents one of the points in the cloud with its location , the cosine of the incident angle , index of the object hit , and its semantic tag .","title":"carla . SemanticLidarDetection"},{"location":"python_api/#instance-variables_10","text":"point ( carla . Location - meters ) [ x , y , z ] coordinates of the point . cos _ inc _ angle ( float ) Cosine of the incident angle between the ray , and the normal of the hit object . object _ idx ( uint ) ID of the actor hit by the ray . object _ tag ( uint ) \u8bed\u4e49 \u6807\u7b7e of the component hit by the ray .","title":"Instance Variables"},{"location":"python_api/#methods_9","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_11","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasemanticlidarmeasurement","text":"Inherited from carla . SensorData Class that defines the semantic LIDAR data retrieved by a sensor . lidar . ray _ cast _ semantic . This essentially simulates a rotating LIDAR using ray - casting . Learn more about this here .","title":"carla . SemanticLidarMeasurement"},{"location":"python_api/#instance-variables_11","text":"channels ( int ) Number of lasers shot . horizontal _ angle ( float - radians ) Horizontal angle the LIDAR is rotated at the time of the measurement . raw _ data ( bytes ) Received list of raw detection points . Each point consists of [ x , y , z ] coordinates plus the cosine of the incident angle , the index of the hit actor , and its semantic tag .","title":"Instance Variables"},{"location":"python_api/#methods_10","text":"save _ to _ disk ( self , path ) Saves the point cloud to disk as a . ply file describing data from 3D scanners . The files generated are ready to be used within MeshLab , an open - source system for processing said files . Just take into account that axis may differ from Unreal Engine and so , need to be reallocated . Parameters : path ( str )","title":"Methods"},{"location":"python_api/#getters_2","text":"get _ point _ count ( self , channel ) Retrieves the number of points sorted by channel that are generated by this measure . Sorting by channel allows to identify the original channel for every point . Parameters : channel ( int )","title":"Getters"},{"location":"python_api/#dunder-methods_12","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasensor","text":"Inherited from carla . Actor Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - Depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector .","title":"carla . Sensor"},{"location":"python_api/#instance-variables_12","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"Instance Variables"},{"location":"python_api/#methods_11","text":"is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture .","title":"Methods"},{"location":"python_api/#dunder-methods_13","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlasensordata","text":"Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement .","title":"carla . SensorData"},{"location":"python_api/#instance-variables_13","text":"frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated .","title":"Instance Variables"},{"location":"python_api/#carlatexturecolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel .","title":"carla . TextureColor"},{"location":"python_api/#instance-variables_14","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"Instance Variables"},{"location":"python_api/#methods_12","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color )","title":"Methods"},{"location":"python_api/#setters_2","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"Setters"},{"location":"python_api/#carlatexturefloatcolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel .","title":"carla . TextureFloatColor"},{"location":"python_api/#instance-variables_15","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"Instance Variables"},{"location":"python_api/#methods_13","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) Return : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor )","title":"Methods"},{"location":"python_api/#setters_3","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"Setters"},{"location":"python_api/#carlatimestamp","text":"Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data .","title":"carla . Timestamp"},{"location":"python_api/#instance-variables_16","text":"frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds .","title":"Instance Variables"},{"location":"python_api/#methods_14","text":"__ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds )","title":"Methods"},{"location":"python_api/#dunder-methods_14","text":"__ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlatrafficlight","text":"Inherited from carla . TrafficSign A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually .","title":"carla . TrafficLight"},{"location":"python_api/#instance-variables_17","text":"state ( carla . TrafficLightState ) Current state of the traffic light .","title":"Instance Variables"},{"location":"python_api/#methods_15","text":"freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . Return : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator .","title":"Methods"},{"location":"python_api/#getters_3","text":"get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . Return : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . Return : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . Return : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . Return : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . Return : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . Return : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . Return : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . Return : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . Return : float - seconds Setter : carla . TrafficLight . set _ yellow _ time","title":"Getters"},{"location":"python_api/#setters_4","text":"set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . Getter : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) Getter : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) Getter : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) Getter : carla . TrafficLight . get _ yellow _ time","title":"Setters"},{"location":"python_api/#dunder-methods_15","text":"__ str __ ( self )","title":"Dunder methods"},{"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/#instance-variables_18","text":"Red Yellow Green Off Unknown","title":"Instance Variables"},{"location":"python_api/#carlatrafficmanager","text":"The traffic manager is a module built on top of the CARLA API in C++ . It handles any group of vehicles set to autopilot mode to populate the simulation with realistic urban traffic conditions and give the chance to user to customize some behaviours . The architecture of the traffic manager is divided in five different goal - oriented stages and a PID controller where the information flows until eventually , a carla . VehicleControl is applied to every vehicle registered in a traffic manager . In order to learn more , visit the documentation regarding this module .","title":"carla . TrafficManager"},{"location":"python_api/#methods_16","text":"auto _ lane _ change ( self , actor , enable ) Turns on or off lane changing behaviour for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle whose settings are changed . enable ( bool ) - True is default and enables lane changes . False will disable them . collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) Tunes on / off collisions between a vehicle and another specific actor . In order to ignore all other vehicles , traffic lights or walkers , use the specific ignore methods described in this same section . Parameters : reference _ actor ( carla . Actor ) - Vehicle that is going to ignore collisions . other _ actor ( carla . Actor ) - The actor that reference _ actor is going to ignore collisions with . detect _ collision ( bool ) - True is default and enables collisions . False will disable them . distance _ to _ leading _ vehicle ( self , actor , distance ) Sets the minimum distance in meters that a vehicle has to keep with the others . The distance is in meters and will affect the minimum moving distance . It is computed from front to back of the vehicle objects . Parameters : actor ( carla . Actor ) - Vehicle whose minimum distance is being changed . distance ( float - meters ) - Meters between both vehicles . force _ lane _ change ( self , actor , direction ) Forces a vehicle to change either to the lane on its left or right , if existing , as indicated in direction . This method applies the lane change no matter what , disregarding possible collisions . Parameters : actor ( carla . Actor ) - Vehicle being forced to change lanes . direction ( bool ) - Destination lane . True is the one on the right and False is the left one . global _ lane _ offset ( self , offset ) Sets a global lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : offset ( float ) - Lane offset displacement from the center line . global _ percentage _ speed _ difference ( self , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : percentage ( float ) - Percentage difference between intended speed and the current limit . ignore _ lights _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that traffic lights will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore traffic lights . perc ( float ) - Between 0 and 100 . Amount of times traffic lights will be ignored . ignore _ signs _ percentage ( self , actor , perc ) During the traffic light stage , which runs every frame , this method sets the percent chance that stop signs will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The actor that is going to ignore stop signs . perc ( float ) - Between 0 and 100 . Amount of times stop signs will be ignored . ignore _ vehicles _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with another vehicle will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore other vehicles . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . ignore _ walkers _ percentage ( self , actor , perc ) During the collision detection stage , which runs every frame , this method sets a percent chance that collisions with walkers will be ignored for a vehicle . Parameters : actor ( carla . Actor ) - The vehicle that is going to ignore walkers on scene . perc ( float ) - Between 0 and 100 . Amount of times collisions will be ignored . keep _ right _ rule _ percentage ( self , actor , perc ) During the localization stage , this method sets a percent chance that vehicle will follow the keep right rule , and stay in the right lane . Parameters : actor ( carla . Actor ) - Vehicle whose behaviour is being changed . perc ( float ) - Between 0 and 100 . Amount of times the vehicle will follow the keep right rule . random _ left _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a left lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . random _ right _ lanechange _ percentage ( self , actor , percentage ) Adjust probability that in each timestep the actor will perform a right lane change , dependent on lane change availability . Parameters : actor ( carla . Actor ) - The actor that you wish to query . percentage ( float ) - The probability of lane change in percentage units ( between 0 and 100 ) . shut _ down ( self ) Shuts down the traffic manager . update _ vehicle _ lights ( self , actor , do _ update ) Sets if the Traffic Manager is responsible of updating the vehicle lights , or not . Default is False . The traffic manager will not change the vehicle light status of a vehicle , unless its auto _ update _ status is st to True . Parameters : actor ( carla . Actor ) - Vehicle whose lights status is being changed . do _ update ( bool ) - If True the traffic manager will manage the vehicle lights for the specified vehicle . vehicle _ lane _ offset ( self , actor , offset ) Sets a lane offset displacement from the center line . Positive values imply a right offset while negative ones mean a left one . Default is 0 . Numbers high enough to cause the vehicle to drive through other lanes might break the controller . Parameters : actor ( carla . Actor ) - Vehicle whose lane offset behaviour is being changed . offset ( float ) - Lane offset displacement from the center line . vehicle _ percentage _ speed _ difference ( self , actor , percentage ) Sets the difference the vehicle ' s intended speed and its current speed limit . Speed limits can be exceeded by setting the perc to a negative value . Default is 30 . Exceeding a speed limit can be done using negative percentages . Parameters : actor ( carla . Actor ) - Vehicle whose speed behaviour is being changed . percentage ( float ) - Percentage difference between intended speed and the current limit .","title":"Methods"},{"location":"python_api/#getters_4","text":"get _ all _ actions ( self , actor ) Returns all known actions ( i . e . road options and waypoints ) that an actor controlled by the Traffic Manager will perform in its next steps . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of lists with each element as follows - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ next _ action ( self , actor ) Returns the next known road option and waypoint that an actor controlled by the Traffic Manager will follow . Parameters : actor ( carla . Actor ) - The actor that you wish to query . Return : list of two elements - [ Road option ( string e . g . ' Left ' , ' Right ' , ' Straight ' ) , Next waypoint ( carla . Waypoint ) ] get _ port ( self ) Returns the port where the Traffic Manager is connected . If the object is a TM - Client , it will return the port of its TM - Server . Read the documentation to learn the difference . Return : uint16","title":"Getters"},{"location":"python_api/#setters_5","text":"set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) Sets the upper and lower boundaries for dormant actors to be respawned near the hero vehicle . Parameters : lower _ bound ( float ) - The minimum distance in meters from the hero vehicle that a dormant actor will be respawned . upper _ bound ( float ) - The maximum distance in meters from the hero vehicle that a dormant actor will be respawned . Warning : The upper _ bound cannot be higher than the actor _ active _ distance . The lower _ bound cannot be less than 25 . set _ desired _ speed ( self , actor , speed ) Sets the speed of a vehicle to the specified value . Parameters : actor ( carla . Actor ) - Vehicle whose speed is being changed . speed ( float ) - Desired speed at which the vehicle will move . set _ global _ distance _ to _ leading _ vehicle ( self , distance ) Sets the minimum distance in meters that vehicles have to keep with the rest . The distance is in meters and will affect the minimum moving distance . It is computed from center to center of the vehicle objects . Parameters : distance ( float - meters ) - Meters between vehicles . set _ hybrid _ physics _ mode ( self , enabled = False ) Enables or disables the hybrid physics mode . In this mode , vehicle ' s farther than a certain radius from the ego vehicle will have their physics disabled . Computation cost will be reduced by not calculating vehicle dynamics . Vehicles will be teleported . Parameters : enabled ( bool ) - If True , enables the hybrid physics . set _ hybrid _ physics _ radius ( self , r = 50.0 ) With hybrid physics on , changes the radius of the area of influence where physics are enabled . Parameters : r ( float - meters ) - New radius where physics are enabled . set _ osm _ mode ( self , mode _ switch = True ) Enables or disables the OSM mode . This mode allows the user to run TM in a map created with the OSM feature . These maps allow having dead - end streets . Normally , if vehicles cannot find the next waypoint , TM crashes . If OSM mode is enabled , it will show a warning , and destroy vehicles when necessary . Parameters : mode _ switch ( bool ) - If True , the OSM mode is enabled . set _ path ( self , actor , path ) Sets a list of locations for a vehicle to follow while controlled by the Traffic Manager . Parameters : actor ( carla . Actor ) - The actor that must follow the given path . path ( list ) - The list of carla . Locations for the actor to follow . Warning : Ensure that the road topology doesn ' t impede the given path . set _ random _ device _ seed ( self , value ) Sets a specific random seed for the Traffic Manager , thereby setting it to be deterministic . Parameters : value ( int ) - Seed value for the random number generation of the Traffic Manager . set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) If True , vehicles in large maps will respawn near the hero vehicle when they become dormant . Otherwise , they will stay dormant until they are within actor _ active _ distance of the hero vehicle again . Parameters : mode _ switch ( bool ) set _ route ( self , actor , path ) Sets a list of route instructions for a vehicle to follow while controlled by the Traffic Manager . The possible route instructions are ' Left ' , ' Right ' , ' Straight ' . Parameters : actor ( carla . Actor ) - The actor that must follow the given route instructions . path ( list ) - The list of route instructions ( string ) for the vehicle to follow . Warning : Ensure that the lane topology doesn ' t impede the given route . set _ synchronous _ mode ( self , mode _ switch = True ) Sets the Traffic Manager to synchronous mode . In a multiclient situation , only the TM - Server can tick . Similarly , in a multiTM situation , only one TM - Server must tick . Use this method in the client that does the world tick , and right after setting the world to synchronous mode , to set which TM will be the master while in sync . Parameters : mode _ switch ( bool ) - If True , the TM synchronous mode is enabled . Warning : If the server is set to synchronous mode , the TM must be set to synchronous mode too in the same client that does the tick .","title":"Setters"},{"location":"python_api/#carlatrafficsign","text":"Inherited from carla . Actor Traffic signs appearing in the simulation except for traffic lights . These have their own class inherited from this in carla . TrafficLight . Right now , speed signs , stops and yields are mainly the ones implemented , but many others are borne in mind .","title":"carla . TrafficSign"},{"location":"python_api/#instance-variables_19","text":"trigger _ volume A carla . BoundingBox situated near a traffic sign where the carla . Actor who is inside can know about it .","title":"Instance Variables"},{"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/#instance-variables_20","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":"Instance Variables"},{"location":"python_api/#methods_17","text":"__ init __ ( self , location , rotation ) Parameters : location ( carla . Location ) rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) transform ( self , in _ point ) Translates a 3D point from local to global coordinates using the current transformation as frame of reference . Parameters : in _ point ( carla . Location ) - Location in the space to which the transformation will be applied . transform _ vector ( self , in _ vector ) Rotates a vector using the current transformation as frame of reference , without applying translation . Use this to transform , for example , a velocity . Parameters : in _ vector ( carla . Vector3D ) - Vector to which the transformation will be applied .","title":"Methods"},{"location":"python_api/#getters_5","text":"get _ forward _ vector ( self ) Computes a forward vector using the rotation of the object . Return : carla . Vector3D get _ inverse _ matrix ( self ) Computes the 4 - matrix representation of the inverse transformation . Return : list ( list ( float ) ) get _ matrix ( self ) Computes the 4 - matrix representation of the transformation . Return : list ( list ( float ) ) get _ right _ vector ( self ) Computes a right vector using the rotation of the object . Return : carla . Vector3D get _ up _ vector ( self ) Computes an up vector using the rotation of the object . Return : carla . Vector3D","title":"Getters"},{"location":"python_api/#dunder-methods_16","text":"__ eq __ ( self , other = carla . Transform ) Returns True if both location and rotation are equal for this and other . Return : bool __ ne __ ( self , other = carla . Transform ) Returns True if any location and rotation are not equal for this and other . Return : bool __ str __ ( self ) Parses both location and rotation to string . Return : str","title":"Dunder methods"},{"location":"python_api/#carlavector2d","text":"Helper class to perform 2D operations .","title":"carla . Vector2D"},{"location":"python_api/#instance-variables_21","text":"x ( float ) X - axis value . y ( float ) Y - axis value .","title":"Instance Variables"},{"location":"python_api/#methods_18","text":"__ init __ ( self , x = 0.0 , y = 0.0 ) Parameters : x ( float ) y ( float ) length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float","title":"Methods"},{"location":"python_api/#dunder-methods_17","text":"__ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D )","title":"Dunder methods"},{"location":"python_api/#carlavector3d","text":"Helper class to perform 3D operations .","title":"carla . Vector3D"},{"location":"python_api/#instance-variables_22","text":"x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value .","title":"Instance Variables"},{"location":"python_api/#methods_19","text":"__ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) Parameters : x ( float ) y ( float ) z ( float ) cross ( self , vector ) Computes the cross product between two vectors . Parameters : vector ( carla . Vector3D ) Return : carla . Vector3D distance ( self , vector ) Computes the distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ 2d ( self , vector ) Computes the 2 - dimensional distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared ( self , vector ) Computes the squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float distance _ squared _ 2d ( self , vector ) Computes the 2 - dimensional squared distance between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot ( self , vector ) Computes the dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float dot _ 2d ( self , vector ) Computes the 2 - dimensional dot product between two vectors . Parameters : vector ( carla . Vector3D ) Return : float length ( self ) Computes the length of the vector . Return : float make _ unit _ vector ( self ) Returns a vector with the same direction and unitary length . Return : carla . Vector3D squared _ length ( self ) Computes the squared length of the vector . Return : float","title":"Methods"},{"location":"python_api/#getters_6","text":"get _ vector _ angle ( self , vector ) Computes the angle between a pair of 3D vectors in radians . Parameters : vector ( carla . Vector3D ) Return : float","title":"Getters"},{"location":"python_api/#dunder-methods_18","text":"__ abs __ ( self ) Returns a Vector3D with the absolute value of the components x , y and z . Return : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) Returns True if values for every axis are equal . Return : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) Returns True if the value for any axis is different . Return : bool __ str __ ( self ) Returns the axis values for the vector parsed as string . Return : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D )","title":"Dunder methods"},{"location":"python_api/#carlavehicle","text":"Inherited from carla . Actor One of the most important groups of actors in CARLA . These include any type of vehicle from cars to trucks , motorbikes , vans , bycicles and also official vehicles such as police cars . A wide set of these actors is provided in carla . BlueprintLibrary to facilitate differente requirements . Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client - side by the traffic manager .","title":"carla . Vehicle"},{"location":"python_api/#instance-variables_23","text":"bounding _ box ( carla . BoundingBox ) Bounding box containing the geometry of the vehicle . Its location and rotation are relative to the vehicle it is attached to .","title":"Instance Variables"},{"location":"python_api/#methods_20","text":"apply _ ackermann _ control ( self , control ) Applies an Ackermann control object on the next tick . Parameters : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) Applies a new Ackermann control settings to this vehicle in the next tick . Parameters : settings ( carla . AckermannControllerSettings ) Warning : This method does call the simulator . apply _ control ( self , control ) Applies a control object on the next tick , containing driving parameters such as throttle , steering or gear shifting . Parameters : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) Applies a physics control object in the next tick containing the parameters that define the vehicle as a corporeal body . E . g . : moment of inertia , mass , drag coefficient and many more . Parameters : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) Close the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to close all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . enable _ carsim ( self , simfile _ path ) Enables the CarSim physics solver for this particular vehicle . In order for this function to work , there needs to be a valid license manager running on the server side . The control inputs are redirected to CarSim which will provide the position and orientation of the vehicle for every frame . Parameters : simfile _ path ( str ) - Path to the . simfile file with the parameters of the simulation . enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) Enables Chrono physics on a spawned vehicle . Parameters : max _ substeps ( int ) - Max number of Chrono substeps . max _ substep _ delta _ time ( int ) - Max size of substep . vehicle _ json ( str ) - Path to vehicle json file relative to base _ json _ path . powertrain _ json ( str ) - Path to powertrain json file relative to base _ json _ path . tire _ json ( str ) - Path to tire json file relative to base _ json _ path . base _ json _ path ( str ) - Path to chrono / data / vehicle folder . E . g . , / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( the final / character is required ) . Note : Ensure that you have started the CARLA server with the ARGS = \" -- chrono \" flag . You will not be able to use Chrono physics without this flag set . Warning : Collisions are not supported . When a collision is detected , physics will revert to the default CARLA physics . is _ at _ traffic _ light ( self ) Vehicles will be affected by a traffic light when the light is red and the vehicle is inside its bounding box . The client returns whether a traffic light is affecting this vehicle according to last tick ( it does not call the simulator ) . Return : bool open _ door ( self , door _ idx ) Open the door door _ idx if the vehicle has it . Use carla . VehicleDoor . All to open all available doors . Parameters : door _ idx ( carla . VehicleDoor ) - door index . show _ debug _ telemetry ( self , enabled = True ) Enables or disables the telemetry on this vehicle . This shows information about the vehicles current state and forces applied to it in the spectator window . Only information for one vehicle can be shown so that , if you enable a second one , the previous will be automatically disabled . Parameters : enabled ( bool ) use _ carsim _ road ( self , enabled ) Enables or disables the usage of CarSim vs terrain file specified in the . simfile . By default this option is disabled and CarSim uses unreal engine methods to process the geometry of the scene . Parameters : enabled ( bool )","title":"Methods"},{"location":"python_api/#getters_7","text":"get _ ackermann _ controller _ settings ( self ) Returns the last Ackermann control settings applied to this vehicle . Return : carla . AckermannControllerSettings Warning : This method does call the simulator to retrieve the value . get _ control ( self ) The client returns the control applied in the last tick . The method does not call the simulator . Return : carla . VehicleControl get _ failure _ state ( self ) Vehicle have failure states , to indicate that it is incapable of continuing its route . This function returns the vehicle ' s specific failure state , or in other words , the cause that resulted in it . Return : carla . VehicleFailureState get _ light _ state ( self ) Returns a flag representing the vehicle light state , this represents which lights are active or not . Return : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) The simulator returns the last physics control applied to this vehicle . Return : carla . VehiclePhysicsControl Warning : This method does call the simulator to retrieve the value . get _ speed _ limit ( self ) The client returns the speed limit affecting this vehicle according to last tick ( it does not call the simulator ) . The speed limit is updated when passing by a speed limit signal , so a vehicle might have none right after spawning . Return : float - km / h get _ traffic _ light ( self ) Retrieves the traffic light actor affecting this vehicle ( if any ) according to last tick . The method does not call the simulator . Return : carla . TrafficLight get _ traffic _ light _ state ( self ) The client returns the state of the traffic light affecting this vehicle according to last tick . The method does not call the simulator . If no traffic light is currently affecting the vehicle , returns green . Return : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) Returns the physics angle in degrees of a vehicle ' s wheel . Parameters : wheel _ location ( carla . VehicleWheelLocation ) Return : float Note : Returns the angle based on the physics of the wheel , not the visual angle .","title":"Getters"},{"location":"python_api/#setters_6","text":"set _ autopilot ( self , enabled = True , port = 8000 ) Registers or deletes the vehicle from a Traffic Manager ' s list . When True , the Traffic Manager passed as parameter will move the vehicle around . The autopilot takes place client - side . Parameters : enabled ( bool ) port ( uint16 ) - The port of the TM - Server where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 . set _ light _ state ( self , light _ state ) Sets the light state of a vehicle using a flag that represents the lights that are on and off . Parameters : light _ state ( carla . VehicleLightState ) Getter : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 Sets the angle of a vehicle ' s wheel visually . Parameters : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) Warning : Does not affect the physics of the vehicle .","title":"Setters"},{"location":"python_api/#dunder-methods_19","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehicleackermanncontrol","text":"Manages the basic movement of a vehicle using Ackermann driving controls .","title":"carla . VehicleAckermannControl"},{"location":"python_api/#instance-variables_24","text":"steer ( float ) Desired steer ( rad ) . Positive value is to the right . Default is 0.0 . steer _ speed ( float ) Steering velocity ( rad / s ) . Zero steering angle velocity means change the steering angle as quickly as possible . Default is 0.0 . speed ( float ) Desired speed ( m / s ) . Default is 0.0 . acceleration ( float ) Desired acceleration ( m / s2 ) Default is 0.0 . jerk ( float ) Desired jerk ( m / s3 ) . Default is 0.0 .","title":"Instance Variables"},{"location":"python_api/#methods_21","text":"__ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) Parameters : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float )","title":"Methods"},{"location":"python_api/#dunder-methods_20","text":"__ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehiclecontrol","text":"Manages the basic movement of a vehicle using typical driving controls .","title":"carla . VehicleControl"},{"location":"python_api/#instance-variables_25","text":"throttle ( float ) A scalar value to control the vehicle throttle [ 0.0 , 1.0 ] . Default is 0.0 . steer ( float ) A scalar value to control the vehicle steering [ - 1.0 , 1.0 ] . Default is 0.0 . brake ( float ) A scalar value to control the vehicle brake [ 0.0 , 1.0 ] . Default is 0.0 . hand _ brake ( bool ) Determines whether hand brake will be used . Default is False . reverse ( bool ) Determines whether the vehicle will move backwards . Default is False . manual _ gear _ shift ( bool ) Determines whether the vehicle will be controlled by changing gears manually . Default is False . gear ( int ) States which gear is the vehicle running on .","title":"Instance Variables"},{"location":"python_api/#methods_22","text":"__ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) Parameters : throttle ( float ) - Scalar value between [ 0.0 , 1.0 ] . steer ( float ) - Scalar value between [ 0.0 , 1.0 ] . brake ( float ) - Scalar value between [ 0.0 , 1.0 ] . hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int )","title":"Methods"},{"location":"python_api/#dunder-methods_21","text":"__ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehicledoor","text":"Possible index representing the possible doors that can be open . Notice that not all possible doors are able to open in some vehicles .","title":"carla . VehicleDoor"},{"location":"python_api/#instance-variables_26","text":"FL Front left door . FR Front right door . RL Back left door . RR Back right door . All Represents all doors .","title":"Instance Variables"},{"location":"python_api/#carlavehiclefailurestate","text":"Enum containing the different failure states of a vehicle , from which the it cannot recover . These are returned by get _ failure _ state ( ) and only Rollover is currently implemented .","title":"carla . VehicleFailureState"},{"location":"python_api/#instance-variables_27","text":"NONE Rollover Engine TirePuncture","title":"Instance Variables"},{"location":"python_api/#carlavehiclelightstate","text":"Class that recaps the state of the lights of a vehicle , these can be used as a flags . E . g : VehicleLightState . HighBeam & VehicleLightState . Brake will return True when both are active . Lights are off by default in any situation and should be managed by the user via script . The blinkers blink automatically . Warning : Right now , not all vehicles have been prepared to work with this functionality , this will be added to all of them in later updates .","title":"carla . VehicleLightState"},{"location":"python_api/#instance-variables_28","text":"NONE All lights off . Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 This is reserved for certain vehicles that can have special lights , like a siren . Special2 This is reserved for certain vehicles that can have special lights , like a siren . All All lights on .","title":"Instance Variables"},{"location":"python_api/#carlavehiclephysicscontrol","text":"Summarizes the parameters that will be used to simulate a carla . Vehicle as a physical object . The specific settings for the wheels though are stipulated using carla . WheelPhysicsControl .","title":"carla . VehiclePhysicsControl"},{"location":"python_api/#instance-variables_29","text":"torque _ curve ( list ( carla . Vector2D ) ) Curve that indicates the torque measured in Nm for a specific RPM of the vehicle ' s engine . max _ rpm ( float ) The maximum RPM of the vehicle ' s engine . moi ( float - kg * m 2 ) The moment of inertia of the vehicle ' s engine . damping _ rate _ full _ throttle ( float ) Damping ratio when the throttle is maximum . damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) Damping ratio when the throttle is zero with clutch engaged . damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) Damping ratio when the throttle is zero with clutch disengaged . use _ gear _ autobox ( bool ) If True , the vehicle will have an automatic transmission . gear _ switch _ time ( float - seconds ) Switching time between gears . clutch _ strength ( float - kg * m 2 / s ) Clutch strength of the vehicle . final _ ratio ( float ) Fixed ratio from transmission to wheels . forward _ gears ( list ( carla . GearPhysicsControl ) ) List of objects defining the vehicle ' s gears . mass ( float - kilograms ) Mass of the vehicle . drag _ coefficient ( float ) Drag coefficient of the vehicle ' s chassis . center _ of _ mass ( carla . Vector3D - meters ) Center of mass of the vehicle . steering _ curve ( list ( carla . Vector2D ) ) Curve that indicates the maximum steering for a specific forward speed . use _ sweep _ wheel _ collision ( bool ) Enable the use of sweep for wheel collision . By default , it is disabled and it uses a simple raycast from the axis to the floor for each wheel . This option provides a better collision model in which the full volume of the wheel is checked against collisions . wheels ( list ( carla . WheelPhysicsControl ) ) List of wheel physics objects . This list should have 4 elements , where index 0 corresponds to the front left wheel , index 1 corresponds to the front right wheel , index 2 corresponds to the back left wheel and index 3 corresponds to the back right wheel . For 2 wheeled vehicles , set the same values for both front and back wheels .","title":"Instance Variables"},{"location":"python_api/#methods_23","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 constructor . Parameters : 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":"Methods"},{"location":"python_api/#dunder-methods_22","text":"__ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlavehiclewheellocation","text":"enum representing the position of each wheel on a vehicle . Used to identify the target wheel when setting an angle in carla . Vehicle . set _ wheel _ steer _ direction or carla . Vehicle . get _ wheel _ steer _ angle .","title":"carla . VehicleWheelLocation"},{"location":"python_api/#instance-variables_30","text":"FL _ Wheel Front left wheel of a 4 wheeled vehicle . FR _ Wheel Front right wheel of a 4 wheeled vehicle . BL _ Wheel Back left wheel of a 4 wheeled vehicle . BR _ Wheel Back right wheel of a 4 wheeled vehicle . Front _ Wheel Front wheel of a 2 wheeled vehicle . Back _ Wheel Back wheel of a 2 wheeled vehicle .","title":"Instance Variables"},{"location":"python_api/#carlawalker","text":"Inherited from carla . Actor This class inherits from the carla . Actor and defines pedestrians in the simulation . Walkers are a special type of actor that can be controlled either by an AI ( carla . WalkerAIController ) or manually via script , using a series of carla . WalkerControl to move these and their skeletons .","title":"carla . Walker"},{"location":"python_api/#methods_24","text":"apply _ control ( self , control ) On the next tick , the control will move the walker in a certain direction with a certain speed . Jumps can be commanded too . Parameters : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) Set the blending value of the custom pose with the animation . The values can be : 0 : will show only the animation 1 : will show only the custom pose ( set by the user with set _ bones ( ) ) any other : will interpolate all the bone positions between animation and the custom pose . Parameters : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) Hide the custom pose and show the animation ( same as calling blend _ pose ( 0 ) ) . show _ pose ( self ) Show the custom pose and hide the animation ( same as calling blend _ pose ( 1 ) ) .","title":"Methods"},{"location":"python_api/#getters_8","text":"get _ bones ( self ) Return the structure with all the bone transformations from the actor . For each bone , we get the name and its transform in three different spaces : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent . Return : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) The client returns the control applied to this walker during last tick . The method does not call the simulator . Return : carla . WalkerControl get _ pose _ from _ animation ( self ) Make a copy of the current animation frame as the custom pose . Initially the custom pose is the neutral pedestrian pose .","title":"Getters"},{"location":"python_api/#setters_7","text":"set _ bones ( self , bones ) Set the bones of the actor . For each bone we want to set we use a relative transform . Only the bones in this list will be set . For each bone you need to setup this info : name : bone name relative : transform based on the bone parent . Parameters : bones ( carla . WalkerBoneControlIn - list of pairs ( bone _ name , transform ) for the bones that we want to set ) Getter : carla . Walker . get _ bones","title":"Setters"},{"location":"python_api/#dunder-methods_23","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkeraicontroller","text":"Inherited from carla . Actor Class that conducts AI control for a walker . The controllers are defined as actors , but they are quite different from the rest . They need to be attached to a parent actor during their creation , which is the walker they will be controlling ( take a look at carla . World if you are yet to learn on how to spawn actors ) . They also need for a special blueprint ( already defined in carla . BlueprintLibrary as \" controller . ai . walker \" ) . This is an empty blueprint , as the AI controller will be invisible in the simulation but will follow its parent around to dictate every step of the way .","title":"carla . WalkerAIController"},{"location":"python_api/#methods_25","text":"go _ to _ location ( self , destination ) Sets the destination that the pedestrian will reach . Parameters : destination ( carla . Location - meters ) start ( self ) Enables AI control for its parent walker . stop ( self ) snippet \u2192 Disables AI control for its parent walker .","title":"Methods"},{"location":"python_api/#setters_8","text":"set _ max _ speed ( self , speed = 1.4 ) Sets a speed for the walker in meters per second . Parameters : speed ( float - m / s ) - An easy walking speed is set by default .","title":"Setters"},{"location":"python_api/#dunder-methods_24","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkerbonecontrolin","text":"This class grants bone specific manipulation for walker . The skeletons of walkers have been unified for clarity and the transform applied to each bone are always relative to its parent . Take a look here to learn more on how to create a walker and define its movement .","title":"carla . WalkerBoneControlIn"},{"location":"python_api/#instance-variables_31","text":"bone _ transforms ( list ( [ name , transform ] ) ) List with the data for each bone we want to set : name : bone name relative : transform based on the bone parent .","title":"Instance Variables"},{"location":"python_api/#methods_26","text":"__ init __ ( self , list ( name , transform ) ) Initializes an object containing moves to be applied on tick . These are listed with the name of the bone and the transform that will be applied to it . Parameters : list ( name , transform ) ( tuple )","title":"Methods"},{"location":"python_api/#dunder-methods_25","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkerbonecontrolout","text":"This class is used to return all bone positions of a pedestrian . For each bone we get its name and its transform in three different spaces ( world , actor and relative ) .","title":"carla . WalkerBoneControlOut"},{"location":"python_api/#instance-variables_32","text":"bone _ transforms ( list ( [ name , world , actor , relative ] ) ) List of one entry per bone with this information : name : bone name world : transform in world coordinates component : transform based on the pivot of the actor relative : transform based on the bone parent .","title":"Instance Variables"},{"location":"python_api/#methods_27","text":"","title":"Methods"},{"location":"python_api/#dunder-methods_26","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawalkercontrol","text":"This class defines specific directions that can be commanded to a carla . Walker to control it via script . AI control can be settled for walkers , but the control used to do so is carla . WalkerAIController .","title":"carla . WalkerControl"},{"location":"python_api/#instance-variables_33","text":"direction ( carla . Vector3D ) Vector using global coordinates that will correspond to the direction of the walker . speed ( float - m / s ) A scalar value to control the walker ' s speed . jump ( bool ) If True , the walker will perform a jump .","title":"Instance Variables"},{"location":"python_api/#methods_28","text":"__ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) Parameters : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool )","title":"Methods"},{"location":"python_api/#dunder-methods_27","text":"__ eq __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if these are all the same . __ ne __ ( self , other = carla . WalkerControl ) Compares every variable with other and returns True if any of these differ . __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawaypoint","text":"Waypoints in CARLA are described as 3D directed points . They have a carla . Transform which locates the waypoint in a road and orientates it according to the lane . They also store the road information belonging to said point regarding its lane and lane markings . All the information regarding waypoints and the waypoint API is retrieved as provided by the OpenDRIVE file . Once the client asks for the map object to the server , no longer communication will be needed .","title":"carla . Waypoint"},{"location":"python_api/#instance-variables_34","text":"id ( int ) The identifier is generated using a hash combination of the road , section , lane and s values that correspond to said point in the OpenDRIVE geometry . The s precision is set to 2 centimeters , so 2 waypoints closer than 2 centimeters in the same road , section and lane , will have the same identificator . transform ( carla . Transform ) Position and orientation of the waypoint according to the current lane information . This data is computed the first time it is accessed . It is not created right away in order to ease computing costs when lots of waypoints are created but their specific transform is not needed . road _ id ( int ) OpenDRIVE road ' s id . section _ id ( int ) OpenDRIVE section ' s id , based on the order that they are originally defined . is _ junction ( bool ) True if the current Waypoint is on a junction as defined by OpenDRIVE . junction _ id ( int ) OpenDRIVE junction ' s id . For more information refer to OpenDRIVE documentation . lane _ id ( int ) OpenDRIVE lane ' s id , this value can be positive or negative which represents the direction of the current lane with respect to the road . For more information refer to OpenDRIVE documentation . s ( float ) OpenDRIVE s value of the current position . lane _ width ( float ) Horizontal size of the road at current s . lane _ change ( carla . LaneChange ) Lane change definition of the current Waypoint ' s location , based on the traffic rules defined in the OpenDRIVE file . It states if a lane change can be done and in which direction . lane _ type ( carla . LaneType ) The lane type of the current Waypoint , based on OpenDRIVE 1.4 standard . right _ lane _ marking ( carla . LaneMarking ) The right lane marking information based on the direction of the Waypoint . left _ lane _ marking ( carla . LaneMarking ) The left lane marking information based on the direction of the Waypoint .","title":"Instance Variables"},{"location":"python_api/#methods_29","text":"next ( self , distance ) Returns a list of waypoints at a certain approximate distance from the current one . It takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the next waypoints . Return : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) Returns a list of waypoints from this to the end of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint ) previous ( self , distance ) This method does not return the waypoint previously visited by an actor , but a list of waypoints at an approximate distance but in the opposite direction of the lane . Similarly to next ( ) , it takes into account the road and its possible deviations without performing any lane change and returns one waypoint per option . The list may be empty if the lane is not connected to any other at the specified distance . Parameters : distance ( float - meters ) - The approximate distance where to get the previous waypoints . Return : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) Returns a list of waypoints from this to the start of the lane separated by a certain distance . Parameters : distance ( float - meters ) - The approximate distance between waypoints . Return : list ( carla . Waypoint )","title":"Methods"},{"location":"python_api/#getters_9","text":"get _ junction ( self ) If the waypoint belongs to a junction this method returns the associated junction object . Otherwise returns null . Return : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) Returns a list of landmarks in the road from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) Returns a list of landmarks in the road of a specified type from the current waypoint until the specified distance . Parameters : distance ( float - meters ) - The maximum distance to search for landmarks from the current waypoint . type ( str ) - The type of landmarks to search . stop _ at _ junction ( bool ) - Enables or disables the landmark search through junctions . Return : list ( carla . Landmark ) get _ left _ lane ( self ) Generates a Waypoint at the center of the left lane based on the direction of the current Waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint get _ right _ lane ( self ) Generates a waypoint at the center of the right lane based on the direction of the current waypoint , taking into account if the lane change is allowed in this location . Will return None if the lane does not exist . Return : carla . Waypoint","title":"Getters"},{"location":"python_api/#dunder-methods_28","text":"__ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlaweatherparameters","text":"This class defines objects containing lighting and weather specifications that can later be applied in carla . World . So far , these conditions only intervene with sensor . camera . rgb . They neither affect the actor ' s physics nor other sensors . Each of these parameters acts indepently from the rest . Increasing the rainfall will not automatically create puddles nor change the road ' s humidity . That makes for a better customization but means that realistic conditions need to be scripted . However an example of dynamic weather conditions working realistically can be found here .","title":"carla . WeatherParameters"},{"location":"python_api/#instance-variables_35","text":"cloudiness ( float ) Values range from 0 to 100 , being 0 a clear sky and 100 one completely covered with clouds . precipitation ( float ) Rain intensity values range from 0 to 100 , being 0 none at all and 100 a heavy rain . precipitation _ deposits ( float ) Determines the creation of puddles . Values range from 0 to 100 , being 0 none at all and 100 a road completely capped with water . Puddles are created with static noise , meaning that they will always appear at the same locations . wind _ intensity ( float ) Controls the strenght of the wind with values from 0 , no wind at all , to 100 , a strong wind . The wind does affect rain direction and leaves from trees , so this value is restricted to avoid animation issues . sun _ azimuth _ angle ( float - degrees ) The azimuth angle of the sun . Values range from 0 to 360 . Zero is an origin point in a sphere determined by Unreal Engine . sun _ altitude _ angle ( float - degrees ) Altitude angle of the sun . Values range from - 90 to 90 corresponding to midnight and midday each . fog _ density ( float ) Fog concentration or thickness . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ distance ( float - meters ) Fog start distance . Values range from 0 to infinite . wetness ( float ) Wetness intensity . It only affects the RGB camera sensor . Values range from 0 to 100 . fog _ falloff ( float ) Density of the fog ( as in specific mass ) from 0 to infinity . The bigger the value , the more dense and heavy it will be , and the fog will reach smaller heights . Corresponds to Fog Height Falloff in the UE docs . If the value is 0 , the fog will be lighter than air , and will cover the whole scene . A value of 1 is approximately as dense as the air , and reaches normal - sized buildings . For values greater than 5 , the air will be so dense that it will be compressed on ground level . scattering _ intensity ( float ) Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . dust _ storm ( float ) Determines the strength of the dust storm weather . Values range from 0 to 100 .","title":"Instance Variables"},{"location":"python_api/#methods_30","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 ) Method to initialize an object defining weather conditions . This class has some presets for different noon and sunset conditions listed in a note below . Parameters : cloudiness ( float ) - 0 is a clear sky , 100 complete overcast . precipitation ( float ) - 0 is no rain at all , 100 a heavy rain . precipitation _ deposits ( float ) - 0 means no puddles on the road , 100 means roads completely capped by rain . wind _ intensity ( float ) - 0 is calm , 100 a strong wind . sun _ azimuth _ angle ( float - degrees ) - 0 is an arbitrary North , 180 its corresponding South . sun _ altitude _ angle ( float - degrees ) - 90 is midday , - 90 is midnight . fog _ density ( float ) - Concentration or thickness of the fog , from 0 to 100 . fog _ distance ( float - meters ) - Distance where the fog starts in meters . wetness ( float ) - Humidity percentages of the road , from 0 to 100 . fog _ falloff ( float ) - Density ( specific mass ) of the fog , from 0 to infinity . scattering _ intensity ( float ) - Controls how much the light will contribute to volumetric fog . When set to 0 , there is no contribution . mie _ scattering _ scale ( float ) - Controls interaction of light with large particles like pollen or air pollution resulting in a hazy sky with halos around the light sources . When set to 0 , there is no contribution . rayleigh _ scattering _ scale ( float ) - Controls interaction of light with small particles like air molecules . Dependent on light wavelength , resulting in a blue sky in the day or red sky in the evening . Note : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset .","title":"Methods"},{"location":"python_api/#dunder-methods_29","text":"__ eq __ ( self , other ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlawheelphysicscontrol","text":"Class that defines specific physical parameters for wheel objects that will be part of a carla . VehiclePhysicsControl to simulate vehicle it as a material object .","title":"carla . WheelPhysicsControl"},{"location":"python_api/#instance-variables_36","text":"tire _ friction ( float ) A scalar value that indicates the friction of the wheel . damping _ rate ( float ) Damping rate of the wheel . max _ steer _ angle ( float - degrees ) Maximum angle that the wheel can steer . radius ( float - centimeters ) Radius of the wheel . max _ brake _ torque ( float - N * m ) Maximum brake torque . max _ handbrake _ torque ( float - N * m ) Maximum handbrake torque . position ( carla . Vector3D ) World position of the wheel . This is a read - only parameter . long _ stiff _ value ( float - kg per radian ) Tire longitudinal stiffness per unit gravitational acceleration . Each vehicle has a custom value . lat _ stiff _ max _ load ( float ) Maximum normalized tire load at which the tire can deliver no more lateral stiffness no matter how much extra load is applied to the tire . Each vehicle has a custom value . lat _ stiff _ value ( float ) Maximum stiffness per unit of lateral slip . Each vehicle has a custom value .","title":"Instance Variables"},{"location":"python_api/#methods_31","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 ) ) Parameters : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - degrees ) radius ( float - centimerers ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - meters )","title":"Methods"},{"location":"python_api/#dunder-methods_30","text":"__ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self )","title":"Dunder methods"},{"location":"python_api/#carlaworld","text":"World objects are created by the client to have a place for the simulation to happen . The world contains the map we can see , meaning the asset , not the navigation map . Navigation maps are part of the carla . Map class . It also manages the weather and actors present in it . There can only be one world per simulation , but it can be changed anytime .","title":"carla . World"},{"location":"python_api/#instance-variables_37","text":"id ( int ) The ID of the episode associated with this world . Episodes are different sessions of a simulation . These change everytime a world is disabled or reloaded . Keeping track is useful to avoid possible issues . debug ( carla . DebugHelper ) Responsible for creating different shapes for debugging . Take a look at its class to learn more about it .","title":"Instance Variables"},{"location":"python_api/#methods_32","text":"apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to object _ name . Parameters : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) Applies a texture object in the field corresponfing to material _ parameter ( normal , diffuse , etc ) to the object in the scene corresponding to all objects in objects _ name _ list . Parameters : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) This method applies settings contained in an object to the simulation running and returns the ID of the frame they were implemented . Parameters : world _ settings ( carla . WorldSettings ) Return : int Warning : If synchronous mode is enabled , and there is a Traffic Manager running , this must be set to sync mode too . Read this to learn how to do it . apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) Applies all texture fields in carla . MaterialParameter to the object object _ name . Empty textures here will not be applied . Parameters : 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 ) Applies all texture fields in carla . MaterialParameter to all objects in objects _ name _ list . Empty textures here will not be applied . Parameters : 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 ) Casts a ray from the specified initial _ location to final _ location . The function then detects all geometries intersecting the ray and returns a list of carla . LabelledPoint in order . Parameters : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . Return : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 Enable or disable a set of EnvironmentObject identified by their id . These objects will appear or disappear from the level . Parameters : env _ objects _ ids ( set ( int ) ) - Set of EnvironmentObject ids to change . enable ( bool ) - State to be applied to all the EnvironmentObject of the set . freeze _ all _ traffic _ lights ( self , frozen ) Freezes or unfreezes all traffic lights in the scene . Frozen traffic lights can be modified by the user but the time will not update them until unfrozen . Parameters : frozen ( bool ) ground _ projection ( self , location , search _ distance ) Projects the specified point downwards in the scene . The functions casts a ray from location in the direction ( 0 , 0 , - 1 ) ( downwards ) and returns a carla . LabelledPoint object with the first geometry this ray intersects ( usually the ground ) . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 Return : int project _ point ( self , location , direction , search _ distance ) Projects the specified point to the desired direction in the scene . The functions casts a ray from location in a direction and returns a carla . Labelled object with the first geometry this ray intersects . If no geometry is found in the search _ distance range the function returns None . Parameters : location ( carla . Location ) - The point to be projected . direction ( carla . Vector3D ) - The direction of projection . search _ distance ( float ) - The maximum distance to perform the projection . Return : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) Stops the callback for callback _ id started with on _ tick ( ) . Parameters : callback _ id ( callback ) - The callback to be removed . The ID is returned when creating the callback . reset _ all _ traffic _ lights ( self ) Resets the cycle of all traffic lights in the map to the initial state . spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 The method will create , return and spawn an actor into the world . The actor will need an available blueprint to be created and a transform ( location and rotation ) . It can also be attached to a parent with a certain attachment type . Parameters : blueprint ( carla . ActorBlueprint ) - The reference from which the actor will be created . transform ( carla . Transform ) - Contains the location and orientation the actor will be spawned with . attach _ to ( carla . Actor ) - The parent object that the spawned actor will follow around . attachment ( carla . AttachmentType ) - Determines how fixed and rigorous should be the changes in position according to its parent object . Return : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u3002 It makes the client wait for a server tick . When the next frame is computed , the server will tick and return a snapshot describing the new state of the world . Parameters : seconds ( float - seconds ) - Maximum time the server should wait for a tick . It is set to 10.0 by default . Return : carla . WorldSnapshot","title":"Methods"},{"location":"python_api/#getters_10","text":"get _ actor ( self , actor _ id ) Looks up for an actor by ID and returns None if not found . Parameters : actor _ id ( int ) Return : carla . Actor get _ actors ( self , actor _ ids = None ) Retrieves a list of carla . Actor elements , either using a list of IDs provided or just listing everyone on stage . If an ID does not correspond with any actor , it will be excluded from the list returned , meaning that both the list of IDs and the list of actors may have different lengths . Parameters : actor _ ids ( list ) - The IDs of the actors being searched . By default it is set to None and returns every actor on scene . Return : carla . ActorList get _ blueprint _ library ( self ) Returns a list of actor blueprints available to ease the spawn of these into the world . Return : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) Returns a list of EnvironmentObject with the requested semantic tag . The method returns all the EnvironmentObjects in the level by default , but the query can be filtered by semantic tags with the argument object _ type . Parameters : object _ type ( carla . CityObjectLabel ) - Semantic tag of the EnvironmentObjects that are returned . Return : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) Returns an array of bounding boxes with location and rotation in world space . The method returns all the bounding boxes in the level by default , but the query can be filtered by semantic tags with the argument actor _ type . Parameters : actor _ type ( carla . CityObjectLabel ) - Semantic tag of the elements contained in the bounding boxes that are returned . Return : array ( carla . BoundingBox ) get _ lightmanager ( self ) Returns an instance of carla . LightManager that can be used to handle the lights in the scene . Return : carla . LightManager get _ map ( self ) Asks the server for the XODR containing the map file , and returns this parsed as a carla . Map . Return : carla . Map Warning : This method does call the simulation . It is expensive , and should only be called once . get _ names _ of _ all _ objects ( self ) Returns a list of the names of all objects in the scene that can be painted with the apply texture functions . Return : list ( str ) get _ random _ location _ from _ navigation ( self ) This can only be used with walkers . It retrieves a random location to be used as a destination using the go _ to _ location ( ) method in carla . WalkerAIController . This location will be part of a sidewalk . Roads , crosswalks and grass zones are excluded . The method does not take into consideration locations of existing actors so if a collision happens when trying to spawn an actor , it will return an error . Take a look at generate _ traffic . py for an example . Return : carla . Location get _ settings ( self ) Returns an object containing some data about the simulation such as synchrony between client and server or rendering mode . Return : carla . WorldSettings get _ snapshot ( self ) Returns a snapshot of the world at a certain moment comprising all the information about the actors . Return : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 Returns the spectator actor . The spectator is a special type of actor created by Unreal Engine , usually with ID = 0 , that acts as a camera and controls the view in the simulator window . Return : carla . Actor get _ traffic _ light ( self , landmark ) Provided a landmark , returns the traffic light object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic light . Return : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) Returns the traffic light actor corresponding to the indicated OpenDRIVE id . Parameters : traffic _ light _ id ( str ) - The OpenDRIVE id . Return : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) This function performs a search along the road in front of the specified waypoint and returns a list of traffic light actors found in the specified search distance . Parameters : waypoint ( carla . Waypoint ) - The input waypoint . distance ( float ) - Search distance . Return : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) Returns the list of traffic light actors affecting the junction indicated in junction _ id . Parameters : junction _ id ( int ) - The id of the junction . Return : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) Provided a landmark , returns the traffic sign object it describes . Parameters : landmark ( carla . Landmark ) - The landmark object describing a traffic sign . Return : carla . TrafficSign get _ vehicles _ light _ states ( self ) Returns a dict where the keys are carla . Actor IDs and the values are carla . VehicleLightState of that vehicle . Return : dict get _ weather ( self ) Retrieves an object containing weather parameters currently active in the simulation , mainly cloudiness , precipitation , wind and sun position . Return : carla . WeatherParameters Setter : carla . World . set _ weather","title":"Getters"},{"location":"python_api/#setters_9","text":"set _ pedestrians _ cross _ factor ( self , percentage ) Parameters : percentage ( float ) - Sets the percentage of pedestrians that can walk on the road or cross at any point on the road . Value should be between 0.0 and 1.0 . For example , a value of 0.1 would allow 10% of pedestrians to walk on the road . Default is 0.0 . Note : Should be set before pedestrians are spawned . set _ pedestrians _ seed ( self , seed ) Parameters : seed ( int ) - Sets the seed to use for any random number generated in relation to pedestrians . Note : Should be set before pedestrians are spawned . If you want to repeat the same exact bodies ( blueprint ) for each pedestrian , then use the same seed in the Python code ( where the blueprint is choosen randomly ) and here , otherwise the pedestrians will repeat the same paths but the bodies will be different . set _ weather ( self , weather ) Changes the weather parameteres ruling the simulation to another ones defined in an object . Parameters : weather ( carla . WeatherParameters ) - New conditions to be applied . Getter : carla . World . get _ weather","title":"Setters"},{"location":"python_api/#dunder-methods_31","text":"__ str __ ( self ) The content of the world is parsed and printed as a brief report of its current state . Return : string","title":"Dunder methods"},{"location":"python_api/#carlaworldsettings","text":"The simulation has some advanced configuration options that are contained in this class and can be managed using carla . World and its methods . These allow the user to choose between client - server synchrony / asynchrony , activation of \" no rendering mode \" and either if the simulation should run with a fixed or variable time - step . Check this out if you want to learn about it .","title":"carla . WorldSettings"},{"location":"python_api/#instance-variables_38","text":"synchronous _ mode ( bool ) States the synchrony between client and server . When set to true , the server will wait for a client tick in order to move forward . It is false by default . no _ rendering _ mode ( bool ) When enabled , the simulation will run no rendering at all . This is mainly used to avoid overhead during heavy traffic simulations . It is false by default . fixed _ delta _ seconds ( float ) Ensures that the time elapsed between two steps of the simulation is fixed . Set this to 0.0 to work with a variable time - step , as happens by default . substepping ( bool ) Enable the physics substepping . This option allows computing some physics substeps between two render frames . If synchronous mode is set , the number of substeps and its time interval are fixed and computed are so they fulfilled the requirements of carla . WorldSettings . max _ substep and carla . WorldSettings . max _ substep _ delta _ time . These last two parameters need to be compatible with carla . WorldSettings . fixed _ delta _ seconds . Enabled by default . max _ substep _ delta _ time ( float ) Maximum delta time of the substeps . If the carla . WorldSettingsmax _ substep is high enough , the substep delta time would be always below or equal to this value . By default , the value is set to 0.01 . max _ substeps ( int ) The maximum number of physics substepping that are allowed . By default , the value is set to 10 . max _ culling _ distance ( float ) Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) Defines wether to use deterministic physics for pedestrian death animations or physical ragdoll simulation . When enabled , pedestrians have less realistic death animation but ensures determinism . When disabled , pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinsm can be ensured . tile _ stream _ distance ( float ) Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . Regions of the map within this range will be visible ( and capable of simulating physics ) . Regions outside this region will not be loaded . actor _ active _ distance ( float ) Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . Actors within this range will be active , and actors outside will become dormant . spectator _ as _ ego ( bool ) Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps . By default , the spectator will provoke loading of neighboring tiles in the absence of an ego actor . This might be inconvenient for applications that immediately spawn an ego actor .","title":"Instance Variables"},{"location":"python_api/#methods_33","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 ) Creates an object containing desired settings that could later be applied through carla . World and its method apply _ settings ( ) . Parameters : synchronous _ mode ( bool ) - Set this to true to enable client - server synchrony . no _ rendering _ mode ( bool ) - Set this to true to completely disable rendering in the simulation . fixed _ delta _ seconds ( float - seconds ) - Set a fixed time - step in between frames . 0.0 means variable time - step and it is the default mode . max _ culling _ distance ( float - meters ) - Configure the max draw distance for each mesh of the level . deterministic _ ragdolls ( bool ) - Defines wether to use deterministic physics or ragdoll simulation for pedestrian deaths . tile _ stream _ distance ( float - meters ) - Used for large maps only . Configures the maximum distance from the hero vehicle to stream tiled maps . actor _ active _ distance ( float - meters ) - Used for large maps only . Configures the distance from the hero vehicle to convert actors to dormant . spectator _ as _ ego ( bool ) - Used for large maps only . Defines the influence of the spectator on tile loading in Large Maps .","title":"Methods"},{"location":"python_api/#dunder-methods_32","text":"__ eq __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are the same . Return : bool __ ne __ ( self , other = carla . WorldSettings ) Returns True if both objects ' variables are different . Return : bool __ str __ ( self ) Parses the established settings to a string and shows them in command line . Return : str","title":"Dunder methods"},{"location":"python_api/#carlaworldsnapshot","text":"This snapshot comprises all the information for every actor on scene at a certain moment of time . It creates and gives acces to a data structure containing a series of carla . ActorSnapshot . The client recieves a new snapshot on every tick that cannot be stored .","title":"carla . WorldSnapshot"},{"location":"python_api/#instance-variables_39","text":"id ( int ) A value unique for every snapshot to differentiate them . frame ( int ) Simulation frame in which the snapshot was taken . timestamp ( carla . Timestamp - seconds ) Precise moment in time when snapshot was taken . This class works in seconds as given by the operative system .","title":"Instance Variables"},{"location":"python_api/#methods_34","text":"find ( self , actor _ id ) Given a certain actor ID , returns its corresponding snapshot or None if it is not found . Parameters : actor _ id ( int ) Return : carla . ActorSnapshot has _ actor ( self , actor _ id ) Given a certain actor ID , checks if there is a snapshot corresponding it and so , if the actor was present at that moment . Parameters : actor _ id ( int ) Return : bool","title":"Methods"},{"location":"python_api/#dunder-methods_33","text":"__ eq __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are the same . Return : bool __ iter __ ( self ) Iterate over the carla . ActorSnapshot stored in the snapshot . __ len __ ( self ) Returns the amount of carla . ActorSnapshot present in this snapshot . Return : int __ ne __ ( self , other = carla . WorldSnapshot ) Returns True if both timestamp are different . Return : bool","title":"Dunder methods"},{"location":"python_api/#commandapplyangularimpulse","text":"Command adaptation of add _ angular _ impulse ( ) in carla . Actor . Applies an angular impulse to an actor .","title":"command . ApplyAngularImpulse"},{"location":"python_api/#instance-variables_40","text":"actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) Angular impulse applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_35","text":"__ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - degrees * s )","title":"Methods"},{"location":"python_api/#commandapplyforce","text":"Command adaptation of add _ force ( ) in carla . Actor . Applies a force to an actor .","title":"command . ApplyForce"},{"location":"python_api/#instance-variables_41","text":"actor _ id ( int ) Actor affected by the command . force ( carla . Vector3D - N ) Force applied to the actor over time .","title":"Instance Variables"},{"location":"python_api/#methods_36","text":"__ init __ ( self , actor , force ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . force ( carla . Vector3D - N )","title":"Methods"},{"location":"python_api/#commandapplyimpulse","text":"Command adaptation of add _ impulse ( ) in carla . Actor . Applies an impulse to an actor .","title":"command . ApplyImpulse"},{"location":"python_api/#instance-variables_42","text":"actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - N * s ) Impulse applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_37","text":"__ init __ ( self , actor , impulse ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . impulse ( carla . Vector3D - N * s )","title":"Methods"},{"location":"python_api/#commandapplytargetangularvelocity","text":"Command adaptation of set _ target _ angular _ velocity ( ) in carla . Actor . Sets the actor ' s angular velocity vector .","title":"command . ApplyTargetAngularVelocity"},{"location":"python_api/#instance-variables_43","text":"actor _ id ( int ) Actor affected by the command . angular _ velocity ( carla . Vector3D - deg / s ) The 3D angular velocity that will be applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_38","text":"__ init __ ( self , actor , angular _ velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . angular _ velocity ( carla . Vector3D - deg / s ) - Angular velocity vector applied to the actor .","title":"Methods"},{"location":"python_api/#commandapplytargetvelocity","text":"Command adaptation of set _ target _ velocity ( ) in carla . Actor .","title":"command . ApplyTargetVelocity"},{"location":"python_api/#instance-variables_44","text":"actor _ id ( int ) Actor affected by the command . velocity ( carla . Vector3D - m / s ) The 3D velocity applied to the actor .","title":"Instance Variables"},{"location":"python_api/#methods_39","text":"__ init __ ( self , actor , velocity ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . velocity ( carla . Vector3D - m / s ) - Velocity vector applied to the actor .","title":"Methods"},{"location":"python_api/#commandapplytorque","text":"Command adaptation of add _ torque ( ) in carla . Actor . Applies a torque to an actor .","title":"command . ApplyTorque"},{"location":"python_api/#instance-variables_45","text":"actor _ id ( int ) Actor affected by the command . torque ( carla . Vector3D - degrees ) Torque applied to the actor over time .","title":"Instance Variables"},{"location":"python_api/#methods_40","text":"__ init __ ( self , actor , torque ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . torque ( carla . Vector3D - degrees )","title":"Methods"},{"location":"python_api/#commandapplytransform","text":"Command adaptation of set _ transform ( ) in carla . Actor . Sets a new transform to an actor .","title":"command . ApplyTransform"},{"location":"python_api/#instance-variables_46","text":"actor _ id ( int ) Actor affected by the command . transform ( carla . Transform ) Transformation to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_41","text":"__ init __ ( self , actor , transform ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform )","title":"Methods"},{"location":"python_api/#commandapplyvehicleackermanncontrol","text":"Command adaptation of apply _ ackermann _ control ( ) in carla . Vehicle . Applies a certain akermann control to a vehicle .","title":"command . ApplyVehicleAckermannControl"},{"location":"python_api/#instance-variables_47","text":"actor _ id ( int ) Vehicle actor affected by the command . control ( carla . AckermannVehicleControl ) Vehicle ackermann control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_42","text":"__ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . AckermannVehicleControl )","title":"Methods"},{"location":"python_api/#commandapplyvehiclecontrol","text":"Command adaptation of apply _ control ( ) in carla . Vehicle . Applies a certain control to a vehicle .","title":"command . ApplyVehicleControl"},{"location":"python_api/#instance-variables_48","text":"actor _ id ( int ) Vehicle actor affected by the command . control ( carla . VehicleControl ) Vehicle control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_43","text":"__ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . VehicleControl )","title":"Methods"},{"location":"python_api/#commandapplyvehiclephysicscontrol","text":"Command adaptation of apply _ physics _ control ( ) in carla . Vehicle . Applies a new physics control to a vehicle , modifying its physical parameters .","title":"command . ApplyVehiclePhysicsControl"},{"location":"python_api/#instance-variables_49","text":"actor _ id ( int ) Vehicle actor affected by the command . physics _ control ( carla . VehiclePhysicsControl ) Physics control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_44","text":"__ init __ ( self , actor , physics _ control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . physics _ control ( carla . VehiclePhysicsControl )","title":"Methods"},{"location":"python_api/#commandapplywalkercontrol","text":"Command adaptation of apply _ control ( ) in carla . Walker . Applies a control to a walker .","title":"command . ApplyWalkerControl"},{"location":"python_api/#instance-variables_50","text":"actor _ id ( int ) Walker actor affected by the command . control ( carla . WalkerControl ) Walker control to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_45","text":"__ init __ ( self , actor , control ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . control ( carla . WalkerControl )","title":"Methods"},{"location":"python_api/#commandapplywalkerstate","text":"Apply a state to the walker actor . Specially useful to initialize an actor them with a specific location , orientation and speed .","title":"command . ApplyWalkerState"},{"location":"python_api/#instance-variables_51","text":"actor _ id ( int ) Walker actor affected by the command . transform ( carla . Transform ) Transform to be applied . speed ( float - m / s ) Speed to be applied .","title":"Instance Variables"},{"location":"python_api/#methods_46","text":"__ init __ ( self , actor , transform , speed ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . transform ( carla . Transform ) speed ( float - m / s )","title":"Methods"},{"location":"python_api/#commanddestroyactor","text":"Command adaptation of destroy ( ) in carla . Actor that tells the simulator to destroy this actor . It has no effect if the actor was already destroyed . When executed with apply _ batch _ sync ( ) in carla . Client there will be a command . Response that will return a boolean stating whether the actor was successfully destroyed .","title":"command . DestroyActor"},{"location":"python_api/#instance-variables_52","text":"actor _ id ( int ) Actor affected by the command .","title":"Instance Variables"},{"location":"python_api/#methods_47","text":"__ init __ ( self , actor ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to .","title":"Methods"},{"location":"python_api/#commandresponse","text":"States the result of executing a command as either the ID of the actor to whom the command was applied to ( when succeeded ) or an error string ( when failed ) . actor ID , depending on whether or not the command succeeded . The method apply _ batch _ sync ( ) in carla . Client returns a list of these to summarize the execution of a batch .","title":"command . Response"},{"location":"python_api/#instance-variables_53","text":"actor _ id ( int ) Actor to whom the command was applied to . States that the command was successful . error ( str ) A string stating the command has failed .","title":"Instance Variables"},{"location":"python_api/#methods_48","text":"has _ error ( self ) Returns True if the command execution fails , and False if it was successful . Return : bool","title":"Methods"},{"location":"python_api/#commandsetautopilot","text":"Command adaptation of set _ autopilot ( ) in carla . Vehicle . Turns on / off the vehicle ' s autopilot mode .","title":"command . SetAutopilot"},{"location":"python_api/#instance-variables_54","text":"actor _ id ( int ) Actor that is affected by the command . enabled ( bool ) If autopilot should be activated or not . port ( uint16 ) Port of the Traffic Manager where the vehicle is to be registered or unlisted .","title":"Instance Variables"},{"location":"python_api/#methods_49","text":"__ init __ ( self , actor , enabled , port = 8000 ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool ) port ( uint16 ) - The Traffic Manager port where the vehicle is to be registered or unlisted . If None is passed , it will consider a TM at default port 8000 .","title":"Methods"},{"location":"python_api/#commandsetenablegravity","text":"Command adaptation of set _ enable _ gravity ( ) in carla . Actor . Enables or disables gravity on an actor .","title":"command . SetEnableGravity"},{"location":"python_api/#instance-variables_55","text":"actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool )","title":"Instance Variables"},{"location":"python_api/#methods_50","text":"__ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool )","title":"Methods"},{"location":"python_api/#commandsetsimulatephysics","text":"Command adaptation of set _ simulate _ physics ( ) in carla . Actor . Determines whether an actor will be affected by physics or not .","title":"command . SetSimulatePhysics"},{"location":"python_api/#instance-variables_56","text":"actor _ id ( int ) Actor affected by the command . enabled ( bool ) If physics should be activated or not .","title":"Instance Variables"},{"location":"python_api/#methods_51","text":"__ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . enabled ( bool )","title":"Methods"},{"location":"python_api/#commandsetvehiclelightstate","text":"Command adaptation of set _ light _ state ( ) in carla . Vehicle . Sets the light state of a vehicle .","title":"command . SetVehicleLightState"},{"location":"python_api/#instance-variables_57","text":"actor _ id ( int ) Actor that is affected by the command . light _ state ( carla . VehicleLightState ) Defines the light state of a vehicle .","title":"Instance Variables"},{"location":"python_api/#methods_52","text":"__ init __ ( self , actor , light _ state ) Parameters : actor ( carla . Actor or int ) - Actor or its ID to whom the command will be applied to . light _ state ( carla . VehicleLightState ) - Recaps the state of the lights of a vehicle , these can be used as a flags .","title":"Methods"},{"location":"python_api/#commandshowdebugtelemetry","text":"Command adaptation of show _ debug _ telemetry ( ) in carla . Actor . Displays vehicle control telemetry data .","title":"command . ShowDebugTelemetry"},{"location":"python_api/#instance-variables_58","text":"actor _ id ( carla . Actor or int ) Actor that is affected by the command . enabled ( bool )","title":"Instance Variables"},{"location":"python_api/#methods_53","text":"__ init __ ( self , actor , enabled ) Parameters : actor ( carla . Actor or int ) - Actor or Actor ID to which the command will be applied to . enabled ( bool )","title":"Methods"},{"location":"python_api/#commandspawnactor","text":"Command adaptation of spawn _ actor ( ) in carla . World . Spawns an actor into the world based on the blueprint provided and the transform . If a parent is provided , the actor is attached to it .","title":"command . SpawnActor"},{"location":"python_api/#instance-variables_59","text":"transform ( carla . Transform ) Transform to be applied . parent _ id ( int ) Identificator of the parent actor .","title":"Instance Variables"},{"location":"python_api/#methods_54","text":"__ init __ ( self ) __ init __ ( self , blueprint , transform ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) Parameters : blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) Links another command to be executed right after . It allows to ease very common flows such as spawning a set of vehicles by command and then using this method to set them to autopilot automatically . Parameters : command ( any carla Command ) - a Carla command . 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 ; } Snippet for carla . World . enable _ environment _ objects # This recipe turn visibility off and on for two specifc buildings on the map # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # Access individual building IDs and save in a set building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # Toggle buildings off world . enable _ environment _ objects ( objects _ to _ toggle , False ) # Toggle buildings on world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ string # This recipe is a modification of lane _ explorer . py example . # It draws the path of an actor through the world , printing information at each waypoint . # ... 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 ) # Check if the vehicle is moving 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 ) # Update the current waypoint and sleep for some time current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # This recipe toggles off several layers in our \" _ Opt \" maps # Load town one with minimum layout ( roads , sidewalks , traffic lights and traffic signs ) # as well as buildings and parked vehicles world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # Toggle all buildings off world . unload _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all parked vehicles off world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # Sets the appearance of the vehicles front wheels to 40 \u00b0 . Vehicle physics will not be affected . 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 __ # This recipe shows in every script provided in PythonAPI / Examples # and it is used to parse the client creation arguments when running the script . 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 Snippet for carla . Map . get _ waypoint # This recipe shows the current traffic rules affecting the vehicle . # Shows the current lane type and if a lane change can be done in the actual lane or the surrounding ones . # ... 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 # This recipe attaches different camera / sensors to a vehicle with different attachments . # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # Default attachment : 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 Snippet for carla . WalkerAIController . stop # 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":"Methods"},{"location":"ref_cpp/","text":"C++ \u53c2\u8003 \u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002 \u521b\u5efa doxygen \u6587\u6863 \u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#c","text":"\u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#doxygen","text":"\u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"\u521b\u5efa doxygen \u6587\u6863"},{"location":"ref_recorder_binary_file_format/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36 2 - \u4fe1\u606f \u5934 \u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a 3 - \u6570\u636e \u6570\u636e\u5305 \u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002 \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002 \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 4 - \u5e27 \u5e03\u5c40 \u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002 5 - \u6587\u4ef6 \u5e03\u5c40 \u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#_1","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#1-","text":"\u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36","title":"1 - \u4e8c\u8fdb\u5236 \u5b57\u7b26\u4e32"},{"location":"ref_recorder_binary_file_format/#2-","text":"\u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a","title":"2 - \u4fe1\u606f \u5934"},{"location":"ref_recorder_binary_file_format/#3-","text":"\u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002","title":"3 - \u6570\u636e\u5305"},{"location":"ref_recorder_binary_file_format/#0-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb"},{"location":"ref_recorder_binary_file_format/#1-_1","text":"\u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002","title":"\u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f"},{"location":"ref_recorder_binary_file_format/#2-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot","title":"\u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0"},{"location":"ref_recorder_binary_file_format/#3-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002","title":"\u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664"},{"location":"ref_recorder_binary_file_format/#4-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7"},{"location":"ref_recorder_binary_file_format/#5-","text":"\u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002","title":"\u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e"},{"location":"ref_recorder_binary_file_format/#6-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u6570\u636e\u5305 6 - \u4f4d\u7f6e"},{"location":"ref_recorder_binary_file_format/#7-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 7 - \u4ea4\u901a\u706f"},{"location":"ref_recorder_binary_file_format/#8-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002","title":"\u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#9-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002","title":"\u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#4-_1","text":"\u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002","title":"4 - \u5e27 \u5e03\u5c40"},{"location":"ref_recorder_binary_file_format/#5-_1","text":"\u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"5 - \u6587\u4ef6 \u5e03\u5c40"},{"location":"ref_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002 \u6df1\u5ea6 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth ) \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u7684 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002 RGB \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027 \u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics ) carla . RssSensor \u7c7b \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002 \u8f93\u51fa \u5c5e\u6027 carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 DVS \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002 DVS \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B . \u5149\u6d41 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002 \u5149\u6d41 \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_1","text":"\u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_2","text":"\u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002","title":"\u78b0\u649e \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_3","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_4","text":"\u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth )","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ref_sensors/#_5","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_6","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_8","text":"\u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f\u5668"},{"location":"ref_sensors/#_9","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027"},{"location":"ref_sensors/#_10","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_11","text":"\u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u7684 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f\u5668"},{"location":"ref_sensors/#_12","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027"},{"location":"ref_sensors/#_13","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_14","text":"\u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002","title":"\u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_15","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_16","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_17","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_18","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_19","text":"\u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u969c\u788d\u7269 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_20","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_21","text":"\u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_22","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#rgb","text":"\u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002","title":"RGB \u76f8\u673a"},{"location":"ref_sensors/#_23","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_24","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_25","text":"\u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002","title":"\u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_26","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_27","text":"\u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics )","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f\u5668"},{"location":"ref_sensors/#carlarsssensor","text":"\u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002","title":"carla . RssSensor \u7c7b"},{"location":"ref_sensors/#_28","text":"carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_29","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_30","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_31","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_32","text":"\u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ref_sensors/#_33","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_34","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_35","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#dvs","text":"\u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002","title":"DVS \u76f8\u673a"},{"location":"ref_sensors/#dvs_1","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B .","title":"DVS \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_36","text":"\u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002","title":"\u5149\u6d41 \u76f8\u673a"},{"location":"ref_sensors/#_37","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5149\u6d41 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_38","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_39","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"release_readme/","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org / \u5982\u4f55 \u8fd0\u884c Carla \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla","text":"\u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org /","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla_1","text":"\u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"\u5982\u4f55 \u8fd0\u884c Carla"},{"location":"ros_compatibility/","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002 ROS \u53c2\u6570 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode \u670d\u52a1 \u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros_1","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode","title":"ROS \u53c2\u6570"},{"location":"ros_compatibility/#_1","text":"\u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"\u670d\u52a1"},{"location":"ros_documentation/","text":"ROS \u6865 ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 \u5f00\u59cb \u4f7f\u7528 \u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865 \u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305 Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3 \u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305 Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u63a2\u7d22 \u53c2\u8003 \u8d44\u6599 \u53c2\u8003\u8d44\u6599 ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"ROS"},{"location":"ros_documentation/#ros","text":"ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002","title":"ROS \u6865"},{"location":"ros_documentation/#_1","text":"\u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865","title":"\u5f00\u59cb \u4f7f\u7528"},{"location":"ros_documentation/#ros_1","text":"Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3","title":"\u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#ros_2","text":"Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe","title":"\u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#_2","text":"ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"\u63a2\u7d22 \u53c2\u8003\u8d44\u6599"},{"location":"ros_index/","text":"ROS Bridge Documentation This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . Get started Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2 Learn about the main ROS bridge package CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions Learn about the additional ROS bridge packages CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations Explore the reference material ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"ROS Bridge Documentation"},{"location":"ros_index/#ros-bridge-documentation","text":"This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS Bridge Documentation"},{"location":"ros_index/#get-started","text":"Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2","title":"Get started"},{"location":"ros_index/#learn-about-the-main-ros-bridge-package","text":"CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions","title":"Learn about the main ROS bridge package"},{"location":"ros_index/#learn-about-the-additional-ros-bridge-packages","text":"CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations","title":"Learn about the additional ROS bridge packages"},{"location":"ros_index/#explore-the-reference-material","text":"ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"Explore the reference material"},{"location":"ros_installation_ros1/","text":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002 ROS \u6865 \u5b89\u88c5 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 \u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make \u8fd0\u884c ROS \u6865 1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 \u6d4b\u8bd5 \u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#ros-1-ros","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#_1","text":"\u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"ros_installation_ros1/#ros","text":"\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002","title":"ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros1/#a-debian","text":"\u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002","title":"A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#b","text":"1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make","title":"B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#ros_1","text":"1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"\u8fd0\u884c ROS \u6865"},{"location":"ros_installation_ros1/#_2","text":"\u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"\u6d4b\u8bd5"},{"location":"ros_installation_ros2/","text":"ROS bridge installation for ROS 2 This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems . Before you begin You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible . ROS bridge installation Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build Run the ROS bridge 1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 Testing To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#ros-bridge-installation-for-ros-2","text":"This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems .","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#before-you-begin","text":"You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible .","title":"Before you begin"},{"location":"ros_installation_ros2/#ros-bridge-installation","text":"Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build","title":"ROS bridge installation"},{"location":"ros_installation_ros2/#run-the-ros-bridge","text":"1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"Run the ROS bridge"},{"location":"ros_installation_ros2/#testing","text":"To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"Testing"},{"location":"ros_msgs/","text":"Carla \u6d88\u606f \u53c2\u8003 \u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b CarlaActorInfo . msg ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002 CarlaActorList . msg \u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 CarlaCollisionEvent . msg \u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002 CarlaControl . msg \u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2 CarlaEgoVehicleControl . msg \u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002 CarlaEgoVehicleInfo . msg \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 CarlaEgoVehicleInfoWheel . msg \u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 CarlaEgoVehicleStatus . msg \u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002 CarlaLaneInvasionEvent . msg \u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2 CarlaScenario . msg \u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002 CarlaScenarioList . msg \u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002 CarlaScenarioRunnerStatus . msg ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4 CarlaStatus . msg \u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaTrafficLightStatus . msg \u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4 CarlaTrafficLightStatusList . msg \u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002 CarlaWalkerControl . msg \u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002 CarlaWaypoint . msg \u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaWorldInfo . msg \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002 EgoVehicleControlCurrent . msg \u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 EgoVehicleControlInfo . msg \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 EgoVehicleControlMaxima . msg \u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002 EgoVehicleControlStatus . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 EgoVehicleControlTarget . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carla","text":"\u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carlaactorinfomsg","text":"ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002","title":"CarlaActorInfo . msg"},{"location":"ros_msgs/#carlaactorlistmsg","text":"\u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaActorList . msg"},{"location":"ros_msgs/#carlacollisioneventmsg","text":"\u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002","title":"CarlaCollisionEvent . msg"},{"location":"ros_msgs/#carlacontrolmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2","title":"CarlaControl . msg"},{"location":"ros_msgs/#carlaegovehiclecontrolmsg","text":"\u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002","title":"CarlaEgoVehicleControl . msg"},{"location":"ros_msgs/#carlaegovehicleinfomsg","text":"\u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002","title":"CarlaEgoVehicleInfo . msg"},{"location":"ros_msgs/#carlaegovehicleinfowheelmsg","text":"\u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002","title":"CarlaEgoVehicleInfoWheel . msg"},{"location":"ros_msgs/#carlaegovehiclestatusmsg","text":"\u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002","title":"CarlaEgoVehicleStatus . msg"},{"location":"ros_msgs/#carlalaneinvasioneventmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2","title":"CarlaLaneInvasionEvent . msg"},{"location":"ros_msgs/#carlascenariomsg","text":"\u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002","title":"CarlaScenario . msg"},{"location":"ros_msgs/#carlascenariolistmsg","text":"\u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002","title":"CarlaScenarioList . msg"},{"location":"ros_msgs/#carlascenariorunnerstatusmsg","text":"ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4","title":"CarlaScenarioRunnerStatus . msg"},{"location":"ros_msgs/#carlastatusmsg","text":"\u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatusmsg","text":"\u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4","title":"CarlaTrafficLightStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatuslistmsg","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaTrafficLightStatusList . msg"},{"location":"ros_msgs/#carlawalkercontrolmsg","text":"\u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002","title":"CarlaWalkerControl . msg"},{"location":"ros_msgs/#carlawaypointmsg","text":"\u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaWaypoint . msg"},{"location":"ros_msgs/#carlaworldinfomsg","text":"\u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002","title":"CarlaWorldInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolcurrentmsg","text":"\u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002","title":"EgoVehicleControlCurrent . msg"},{"location":"ros_msgs/#egovehiclecontrolinfomsg","text":"\u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002","title":"EgoVehicleControlInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolmaximamsg","text":"\u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002","title":"EgoVehicleControlMaxima . msg"},{"location":"ros_msgs/#egovehiclecontrolstatusmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002","title":"EgoVehicleControlStatus . msg"},{"location":"ros_msgs/#egovehiclecontroltargetmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"EgoVehicleControlTarget . msg"},{"location":"ros_sensors/","text":"ROS \u6865 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6df1\u5ea6 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo DVS \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 TF \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002 \u8f66\u901f \u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002 \u5730\u56fe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002 \u76ee\u6807 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002 \u6807\u8bb0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4ea4\u901a \u4ea4\u901a\u706f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#ros","text":"","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_1","text":"","title":"\u53ef\u7528 \u4f20\u611f\u5668"},{"location":"ros_sensors/#rgb","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"RGB \u76f8\u673a"},{"location":"ros_sensors/#_2","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ros_sensors/#_3","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ros_sensors/#dvs","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"DVS \u76f8\u673a"},{"location":"ros_sensors/#_4","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_5","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_6","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u96f7\u8fbe"},{"location":"ros_sensors/#_7","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143"},{"location":"ros_sensors/#_8","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf"},{"location":"ros_sensors/#_9","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent","title":"\u78b0\u649e \u4f20\u611f\u5668"},{"location":"ros_sensors/#_10","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u8f66\u9053 \u5165\u4fb5 \u4f20\u611f\u5668"},{"location":"ros_sensors/#tf","text":"\u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002","title":"TF \u4f20\u611f\u5668"},{"location":"ros_sensors/#_11","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002","title":"\u91cc\u7a0b\u8ba1 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_12","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002","title":"\u8f66\u901f \u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_13","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002","title":"\u5730\u56fe \u4f20\u611f\u5668"},{"location":"ros_sensors/#_14","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002","title":"\u76ee\u6807 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_15","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316","title":"\u6807\u8bb0 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_16","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002","title":"\u4ea4\u901a\u706f \u4f20\u611f\u5668"},{"location":"ros_sensors/#_17","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_18","text":"\u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"\u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f\u5668"},{"location":"rqt_plugin/","text":"RQT Carla \u63d2\u4ef6 RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"rqt_plugin/#rqt-carla","text":"RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"run_ros/","text":"ROS \u6865\u5305 carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u8bbe\u7f6e ROS \u73af\u5883 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a \u51c6\u5907 ROS 1 \u73af\u5883 \uff1a \u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u51c6\u5907 ROS 2 \u73af\u5883 \uff1a source . / install / setup . bash \u8fd0\u884c ROS \u6865 \u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002 \u914d\u7f6e Carla \u8bbe\u7f6e \u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002 \u670d\u52a1 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros","text":"carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros_1","text":"ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a","title":"\u8bbe\u7f6e ROS \u73af\u5883"},{"location":"run_ros/#ros-1","text":"\u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash","title":"\u51c6\u5907 ROS 1 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros-2","text":"source . / install / setup . bash","title":"\u51c6\u5907 ROS 2 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros_2","text":"\u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002","title":"\u8fd0\u884c ROS \u6865"},{"location":"run_ros/#carla","text":"\u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002","title":"\u914d\u7f6e Carla \u8bbe\u7f6e"},{"location":"run_ros/#ros_3","text":"ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control","title":"\u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS"},{"location":"run_ros/#_1","text":"\u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002","title":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236"},{"location":"run_ros/#ros_4","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"run_ros/#_2","text":"\u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002","title":"\u8ba2\u9605"},{"location":"run_ros/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002","title":"\u53d1\u5e03"},{"location":"run_ros/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"\u670d\u52a1"},{"location":"rviz_plugin/","text":"RVIZ Carla \u63d2\u4ef6 RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd \u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09 \u53d1\u5e03 Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4 \u670d\u52a1 Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-carla","text":"RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-ros","text":"RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py","title":"\u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865"},{"location":"rviz_plugin/#rviz","text":"\u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002","title":"RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd"},{"location":"rviz_plugin/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"rviz_plugin/#_1","text":"Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09","title":"\u8ba2\u9605"},{"location":"rviz_plugin/#_2","text":"Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4","title":"\u53d1\u5e03"},{"location":"rviz_plugin/#_3","text":"Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"\u670d\u52a1"},{"location":"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\u7b49 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002 \u8be5 \u9879\u76ee Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u4ecb\u7ecd"},{"location":"start_introduction/#carla","text":"\u91cd\u8981 \u672c \u6587\u6863 \u53c2\u8003 \u6700\u65b0 \u7248\u672c \u7684 Carla \u3002 \u6709\u5173 \u4ee5\u524d \u7248\u672c \u7684 \u6587\u6863 \uff0c \u8bf7 \u5728 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u770b\u5230 \u6b64 \u6309\u94ae \u7684 \u4f4d\u7f6e \u9009\u62e9 \u6240 \u9700 \u7684 \u7248\u672c \uff1a Carla \u662f \u4e00\u6b3e \u5f00\u6e90 \u81ea\u52a8 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5b83 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u7684 \uff0c \u4f5c\u4e3a \u4e00\u4e2a \u6a21\u5757 \u6a21\u5757\u5316 \u4e14 \u7075\u6d3b \u7684 API \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u81ea\u52a8 \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u6d89\u53ca \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4efb\u52a1 \u3002 Carla \u7684 \u4e3b\u8981 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5e2e\u52a9 \u81ea\u52a8 \u9a7e\u9a76 \u7814\u53d1 \u6c11\u4e3b \u6c11\u4e3b\u5316 \uff0c \u6210\u4e3a \u7528\u6237 \u53ef\u4ee5 \u8f7b\u677e \u8bbf\u95ee \u548c \u5b9a\u5236 \u7684 \u5de5\u5177 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u822c \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u4e0d\u540c \u7528\u4f8b \u7684 \u8981\u6c42 \uff08 \u4f8b\u5982 \u5b66\u4e60 \u9a7e\u9a76 \u7b56\u7565 \u3001 \u8bad\u7ec3 \u611f\u77e5 \u7b97\u6cd5 \u7b49 \uff09 \u3002 Carla \u57fa\u4e8e \u865a\u5e7b \u5f15\u64ce \u6765 \u8fd0\u884c \u4eff\u771f \uff0c \u5e76 \u4f7f\u7528 OpenDRIVE \u6807\u51c6 \uff08 \u76ee\u524d \u4e3a 1.4 \uff09 \u6765 \u5b9a\u4e49 \u9053\u8def \u548c \u57ce\u5e02 \u8bbe\u7f6e \u3002 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 Python \u548c C++ \u5904\u7406 \u7684 API \u6388\u4e88 \u7684 \uff0c \u8be5 API \u968f\u7740 \u9879\u76ee \u7684 \u53d1\u5c55 \u800c \u4e0d\u65ad \u589e\u957f \u3002 \u4e3a\u4e86 \u987a\u5229 \u5f00\u53d1 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u8fc7\u7a0b \uff0c Carla \u53d1\u5c55 \u6210\u4e3a \u4e00\u4e2a \u7531 \u793e\u533a \u56f4\u7ed5 \u4e3b \u5e73\u53f0 \u6784\u5efa \u7684 \u9879\u76ee \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u975e\u5e38 \u91cd\u8981 \uff0c \u8fd9\u6837 \u624d\u80fd \u5145\u5206 \u7406\u89e3 \u5176 \u529f\u80fd \u3002","title":"Carla"},{"location":"start_introduction/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7531 \u53ef \u6269\u5c55 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u7ec4\u6210 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8d1f\u8d23 \u4e0e \u4eff\u771f \u672c\u8eab \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \u3001 \u7269\u7406 \u8ba1\u7b97 \u3001 \u4e16\u754c \u72b6\u6001 \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u66f4\u65b0 \u7b49\u7b49 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002","title":"\u4eff\u771f\u5668"},{"location":"start_introduction/#_2","text":"Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u8be5 \u9879\u76ee"},{"location":"start_quickstart/","text":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a Windows pip3 install -- user pygame numpy Linux pip install -- user pygame numpy && pip3 install -- user pygame numpy Carla \u5b89\u88c5 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 A . Debian Carla \u5b89\u88c5 Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 B . \u5305 \u5b89\u88c5 Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002 Carla 0.9 . 12 + \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd0\u884c Carla \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options \u66f4\u65b0 Carla \u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla \u8ddf\u8fdb \u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_2","text":"\u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"start_quickstart/#windows","text":"pip3 install -- user pygame numpy","title":"Windows"},{"location":"start_quickstart/#linux","text":"pip install -- user pygame numpy && pip3 install -- user pygame numpy","title":"Linux"},{"location":"start_quickstart/#carla","text":"\u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002","title":"Carla \u5b89\u88c5"},{"location":"start_quickstart/#a-debian-carla","text":"Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"A . Debian Carla \u5b89\u88c5"},{"location":"start_quickstart/#b","text":"Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002","title":"B . \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_3","text":"\u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002","title":"\u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7"},{"location":"start_quickstart/#_4","text":"","title":"\u5b89\u88c5 \u5ba2\u6237\u7aef \u5e93"},{"location":"start_quickstart/#0912-carla","text":"\u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002","title":"0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c"},{"location":"start_quickstart/#carla-0912","text":"\u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002","title":"Carla 0.9 . 12 +"},{"location":"start_quickstart/#carla_1","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py","title":"\u8fd0\u884c Carla"},{"location":"start_quickstart/#_5","text":"\u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options","title":"\u547d\u4ee4\u884c \u9009\u9879"},{"location":"start_quickstart/#carla_2","text":"\u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u66f4\u65b0 Carla"},{"location":"start_quickstart/#_6","text":"\u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u8ddf\u8fdb"},{"location":"todo/","text":"\u5f85 \u505a \u6280\u672f \u6587\u6863 \u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u4e66\u7c4d \uff1b \u5b66\u672f \u7814\u7a76 \u5b66\u672f\u7814\u7a76 \u611f\u77e5 \u76ee\u6807 \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002 \u89c4\u5212 \u5b9a\u4f4d \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u63a7\u5236 PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u573a\u666f \u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002 \u827a\u672f \u6539\u8fdb \u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b \u865a\u5e7b \u5f15\u64ce \u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b","title":"\u5f85 \u505a \u5217\u8868"},{"location":"todo/#_1","text":"","title":"\u5f85 \u505a"},{"location":"todo/#_2","text":"\u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u4e66\u7c4d \uff1b","title":"\u6280\u672f \u6587\u6863"},{"location":"todo/#_3","text":"","title":"\u5b66\u672f\u7814\u7a76"},{"location":"todo/#_4","text":"\u76ee\u6807 \u68c0\u6d4b \u3001 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002","title":"\u611f\u77e5"},{"location":"todo/#_5","text":"\u5b9a\u4f4d \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002","title":"\u89c4\u5212"},{"location":"todo/#_6","text":"PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002","title":"\u63a7\u5236"},{"location":"todo/#_7","text":"\u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002","title":"\u573a\u666f"},{"location":"todo/#_8","text":"\u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b","title":"\u827a\u672f \u6539\u8fdb"},{"location":"todo/#_9","text":"\u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"todo_list/","text":"\u8ba1\u5212 VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c \u53d1\u5e03 \u6267\u884c \u884c\u7a0b \u7a0b\u5e8f \u53ef\u6267\u884c\u7a0b\u5e8f make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u8ba1\u5212"},{"location":"todo_list/#_1","text":"VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c","title":"\u8ba1\u5212"},{"location":"todo_list/#_2","text":"make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u53d1\u5e03 \u53ef\u6267\u884c\u7a0b\u5e8f"},{"location":"ts_traffic_simulation_overview/","text":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner Scenic Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b SUMO SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a"},{"location":"ts_traffic_simulation_overview/#carla","text":"\u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO","title":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f"},{"location":"ts_traffic_simulation_overview/#_1","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"ts_traffic_simulation_overview/#scenario-runner-openscenario","text":"Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner","title":"Scenario Runner \u548c OpenScenario"},{"location":"ts_traffic_simulation_overview/#scenic","text":"Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b","title":"Scenic"},{"location":"ts_traffic_simulation_overview/#sumo","text":"SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"SUMO"},{"location":"tuto_A_add_props/","text":"\u6dfb\u52a0 \u65b0 \u9053\u5177 \u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_1","text":"\u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_2","text":"","title":"\u51c6\u5907 \u5305"},{"location":"tuto_A_add_props/#_3","text":"1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx","title":"\u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_A_add_props/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002","title":"\u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_A_add_props/#carla","text":"\u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002","title":"\u5bfc\u5165\u5230 Carla \u5305\u4e2d"},{"location":"tuto_A_add_props/#_4","text":"\u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165"},{"location":"tuto_A_add_vehicle/","text":"\u6dfb\u52a0 \u65b0\u8f66 \u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 Inside the new vehicle folder , import your main vehicle skeleton . fbx by right - clicking in the Content Browser and selecting Import into Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > . In the dialogue box that pops up : Set Import Content Type to Geometry and Skinning Weights . Set Normal Import Method to Import Normals . Optionally set Material Import Method to Do not create materials . Uncheck Import Textures to avoid Unreal Engine creating default materials . The Skeletal Mesh will appear along with two new files , < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton . Import the rest of your . fbx files separately from the main vehicle skeleton . fbx file . 3 . Set the physical asset mesh . Open < vehicle _ name > _ PhysicsAssets from the Content Browser . Right - click on the Vehicle _ Base mesh in the Skeleton Tree panel and go to Copy Collision from StaticMesh . Search for and select your SMC _ < vehicle _ name > file . You should see the outline of the physical asset mesh appear in the viewport . Delete the default capsule shape from the Vehicle _ Base . Select all the wheels : Go to the Tools panel and change the Primitive Type to Sphere . Go to the Details panel and change Physics Type to Kinematic . Set Linear Damping to 0 . This will eliminate any extra friction on the wheels . Enable Simulation Generates Hit Event for all meshes . Click Re - generate Bodies . Adjust the wheel sphere to the size of the wheel . Save and close the window . 4 . Create the Animation Blueprint . In the Content Browser , right - click inside your vehicle folder and select Animation - > Animation Blueprint . In Parent Class search for and select VehicleAnimInstance . In Target Skeleton search for and select < vehicle _ name > _ Skeleton . Press OK and rename the blueprint as AnimBP _ < vehicle _ name > . 5 . Configure the Animation Blueprint . To ease the process of configuring the animation blueprint , we will copy an existing one from a native Carla vehicle : Go to Content / Carla / Static / Vehicle and choose any Carla vehicle folder . Open its Animation Blueprint . In the My Blueprint panel , double click on AnimGraph . You will see the graph come up in the viewport . Click and drag to select the Mesh Space Ref Pose , Wheel Handler , and Component To Local components . Right - click and select Copy . Go back to your own vehicle Animation Blueprint and paste the copied contents into the graph area . Click and drag from the standing figure in the Component To Local component to the figure in Output Pose to join the components together . Click Compile in the top left corner . You should now see a pulsating line flowing through the entire sequence . Save and close the window . 6 . Prepare the vehicle and wheel blueprints . In the Content Browser , go to Content / Carla / Blueprints / Vehicles and create a new folder < vehicle _ name > . Inside the folder , right - click and go to Blueprint Class . Open the All Classes section in the pop - up . Search for BaseVehiclePawn and press Select . Rename the file as BP _ < vehicle _ name > . Go to the folder of any of the native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . 7 . Configure the wheel blueprints . In your vehicle blueprint folder , open all four of the wheel blueprints . In the Class Defaults panel , set Collision Mesh to Wheel _ Shape . Omitting this step will cause the vehicle wheels to sink into the ground . Adjust the values for wheel shape radius , width , mass , and damping rate according to your vehicle specifications . Set Tire Config to CommonTireConfig On the front wheels set Steer Angle according to your preferences ( default is 70 ) . Uncheck Affected by Handbrake . On the rear wheels set Steer Angle to 0 . Check Affected by Handbrake . When setting the suspension values , you can use the values here as a guide . Compile and save . 8 . Configure vehicle blueprint . From the Content Browser , open your BP _ < vehicle _ name > . In the Components panel , select Mesh ( VehicleMesh ) ( Inherited ) . In the Details panel , go to Skeletal Mesh and search for and select the base skeleton file of your vehicle ( located in the Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > folder ) . Go to Anim Class in the Details panel . Search for and select your AnimBP _ < vehicle _ name > file . In the Components panel , select Custom Collision ( Inherited ) . Select Static Mesh in the Details panel and search for your SM _ sc _ < vehicle _ name > raycast sensor mesh . In the Components panel , select VehicleMovement ( MovementComp ) ( Inherited ) . In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ < vehicle _ name > _ < wheel _ name > file that corresponds to the correct wheel position . If you have any additional meshes for your vehicle ( doors , lights , etc . , ) separate from the base mesh : Drag them into the Mesh ( VehicleMesh ) ( Inherited ) hierarchy in the Components panel . Select the extra meshes in the hierarchy and search for Collision in the Details panel . Set Collision Presets to NoCollision . Select any lights meshes in the hierarchy . Search for Tag in the Details panel and add the tag emissive . Click Save and Compile . 9 . Add the vehicle to the Blueprint Library . In Content / Carla / Blueprint / Vehicle , open the VehicleFactory file . In the Generate Definitions tab , double click Vehicles . In the Details panel , expand the Default Value section and add a new element to the vehicles array . Fill in the Make and Model of your vehicle . Fill in the Class value with your BP _ < vehicle _ name > file . Optionally , provide a set of recommended colors for the vehicle . Compile and save . 10 . Test the vehicle . Launch Carla , open a terminal in PythonAPI / examples and run the following command : python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 Note Even if you used upper case characters in your make and model , they need to be converted to lower case when passed to the filter . Add an N wheeled vehicle Adding an N wheeled vehicle follows the same import pipeline as that for 4 wheeled vehicles above with a few steps that are different . 5 . Configure the Animation Blueprint for an N wheeled vehicle Search for BaseVehiclePawnNW and press Select . 6 . Prepare the vehicle and wheel blueprints Go to the folder of any native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . Copy the four wheels and copy again for additional wheels . In the case of a 6 wheeled vehicle , you will need 6 different wheels : FLW , FRW , MLW , MRW , RLW , RRW . 7 . Configure the wheel blueprints Follow section 7 as above for the 4 wheeled vehicle . The key difference in the case of an N wheeled vehicle is those affected by handbrake and steering parameters . In some vehicles ( like for example a long wheelbase truck ) the front 2 pairs of wheels will steer , and one set may steer more than others . The rearmost pairs may be affected by handbrake , the specifics will depend upon the vehicle you are modelling . 8 . Configure vehicle blueprint In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ _ file that corresponds to the correct wheel position . This is correct , but just to specify , in the case of N wheeled vehicles , you need to set ALL the wheels . This is an example with a 6 wheeled vehicle : Finally , an additional consideration is setting the differential . In the case of a 4 wheeled vehicle , we have different presets of differentials ( Limited Slip , Open 4W etc . ) but with N wheeled vehicles , you need to choose on which wheels you want to apply torque . In this case , we have chosen only the middle and rear wheels have torque , while the front wheels don \u2019 t , you can specify other configurations . The numbers are going to be the same as the image above this text ( e . g . 0 will be the Front Left Wheel , as specified above ) . All other parameters such as engine , transmission , steering curve , are the same as 4 wheeled vehicles . Add a 2 wheeled vehicle Adding 2 wheeled vehicles is similar to adding a 4 wheeled one but due to the complexity of the animation you ' ll need to set up aditional bones to guide the driver ' s animation . Here is the link to the reference skeleton for 2 wheeled vehicles . As with the 4 wheeled vehicles , orient the model towards positive \" x \" and every bone axis towards positive x and with the z axis facing upwards . Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . Import fbx as Skelletal Mesh to its own folder inside Content / Carla / Static / Vehicles / 2Wheeled . When importing select \" General2WheeledVehicleSkeleton \" as skelleton A Physics asset should be automatically created and linked . 2 . Tune the Physics asset . Delete the automatically created ones and add boxes to the BikeBody bone trying to match the shape as possible , make sure generate hit events is enabled . Add a sphere for each wheel and set their \" Physics Type \" to \" Kinematic \" . 3 . Create folder Content / Blueprints / Vehicles / < vehicle - model > 4 . Inside that folder create two blueprint classes derived from \" VehicleWheel \" class . Call them < vehicle - model > _ FrontWheel and < vehicle - model > _ RearWheel . Set their \" Shape Radius \" to exactly match the mesh wheel radius ( careful , radius not diameter ) . Set their \" Tire Config \" to \" CommonTireConfig \" . On the front wheel uncheck \" Affected by Handbrake \" and on the rear wheel set \" Steer Angle \" to zero . 5 . Inside the same folder create a blueprint class derived from Base2WheeledVehicle call it < vehicle - model > . Open it for edit and select component \" Mesh \" , setup the \" Skeletal Mesh \" and the \" Anim Class \" to the corresponding ones . Then select the VehicleBounds component and set the size to cover vehicle ' s area as seen from above . 6 . Select component \" VehicleMovement \" , under \" Vehicle Setup \" expand \" Wheel Setups \" , setup each wheel . 0 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 1 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 2 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel 3 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel ( You ' ll notice that we are basically placing two wheels in each bone . The vehicle class unreal provides does not support vehicles with wheel numbers different from 4 so we had to make it believe the vehicle has 4 wheels ) 7 . Select the variable \" is bike \" and tick it if your model is a bike . This will activate the pedalier rotation . Leave unmarked if you are setting up a motorbike . 8 . Find the variable back Rotation and set it as it fit better select the component SkeletalMesh ( The driver ) and move it along x axis until its in the seat position . 9 . Test it , go to CarlaGameMode blueprint and change \" Default Pawn Class \" to the newly created bike blueprint .","title":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_1","text":"\u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6dfb\u52a0 \u65b0\u8f66"},{"location":"tuto_A_add_vehicle/#4","text":"\u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002","title":"\u6dfb\u52a0 4 \u8f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_2","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002","title":"\u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_3","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 Inside the new vehicle folder , import your main vehicle skeleton . fbx by right - clicking in the Content Browser and selecting Import into Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > . In the dialogue box that pops up : Set Import Content Type to Geometry and Skinning Weights . Set Normal Import Method to Import Normals . Optionally set Material Import Method to Do not create materials . Uncheck Import Textures to avoid Unreal Engine creating default materials . The Skeletal Mesh will appear along with two new files , < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton . Import the rest of your . fbx files separately from the main vehicle skeleton . fbx file . 3 . Set the physical asset mesh . Open < vehicle _ name > _ PhysicsAssets from the Content Browser . Right - click on the Vehicle _ Base mesh in the Skeleton Tree panel and go to Copy Collision from StaticMesh . Search for and select your SMC _ < vehicle _ name > file . You should see the outline of the physical asset mesh appear in the viewport . Delete the default capsule shape from the Vehicle _ Base . Select all the wheels : Go to the Tools panel and change the Primitive Type to Sphere . Go to the Details panel and change Physics Type to Kinematic . Set Linear Damping to 0 . This will eliminate any extra friction on the wheels . Enable Simulation Generates Hit Event for all meshes . Click Re - generate Bodies . Adjust the wheel sphere to the size of the wheel . Save and close the window . 4 . Create the Animation Blueprint . In the Content Browser , right - click inside your vehicle folder and select Animation - > Animation Blueprint . In Parent Class search for and select VehicleAnimInstance . In Target Skeleton search for and select < vehicle _ name > _ Skeleton . Press OK and rename the blueprint as AnimBP _ < vehicle _ name > . 5 . Configure the Animation Blueprint . To ease the process of configuring the animation blueprint , we will copy an existing one from a native Carla vehicle : Go to Content / Carla / Static / Vehicle and choose any Carla vehicle folder . Open its Animation Blueprint . In the My Blueprint panel , double click on AnimGraph . You will see the graph come up in the viewport . Click and drag to select the Mesh Space Ref Pose , Wheel Handler , and Component To Local components . Right - click and select Copy . Go back to your own vehicle Animation Blueprint and paste the copied contents into the graph area . Click and drag from the standing figure in the Component To Local component to the figure in Output Pose to join the components together . Click Compile in the top left corner . You should now see a pulsating line flowing through the entire sequence . Save and close the window . 6 . Prepare the vehicle and wheel blueprints . In the Content Browser , go to Content / Carla / Blueprints / Vehicles and create a new folder < vehicle _ name > . Inside the folder , right - click and go to Blueprint Class . Open the All Classes section in the pop - up . Search for BaseVehiclePawn and press Select . Rename the file as BP _ < vehicle _ name > . Go to the folder of any of the native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . 7 . Configure the wheel blueprints . In your vehicle blueprint folder , open all four of the wheel blueprints . In the Class Defaults panel , set Collision Mesh to Wheel _ Shape . Omitting this step will cause the vehicle wheels to sink into the ground . Adjust the values for wheel shape radius , width , mass , and damping rate according to your vehicle specifications . Set Tire Config to CommonTireConfig On the front wheels set Steer Angle according to your preferences ( default is 70 ) . Uncheck Affected by Handbrake . On the rear wheels set Steer Angle to 0 . Check Affected by Handbrake . When setting the suspension values , you can use the values here as a guide . Compile and save . 8 . Configure vehicle blueprint . From the Content Browser , open your BP _ < vehicle _ name > . In the Components panel , select Mesh ( VehicleMesh ) ( Inherited ) . In the Details panel , go to Skeletal Mesh and search for and select the base skeleton file of your vehicle ( located in the Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > folder ) . Go to Anim Class in the Details panel . Search for and select your AnimBP _ < vehicle _ name > file . In the Components panel , select Custom Collision ( Inherited ) . Select Static Mesh in the Details panel and search for your SM _ sc _ < vehicle _ name > raycast sensor mesh . In the Components panel , select VehicleMovement ( MovementComp ) ( Inherited ) . In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ < vehicle _ name > _ < wheel _ name > file that corresponds to the correct wheel position . If you have any additional meshes for your vehicle ( doors , lights , etc . , ) separate from the base mesh : Drag them into the Mesh ( VehicleMesh ) ( Inherited ) hierarchy in the Components panel . Select the extra meshes in the hierarchy and search for Collision in the Details panel . Set Collision Presets to NoCollision . Select any lights meshes in the hierarchy . Search for Tag in the Details panel and add the tag emissive . Click Save and Compile . 9 . Add the vehicle to the Blueprint Library . In Content / Carla / Blueprint / Vehicle , open the VehicleFactory file . In the Generate Definitions tab , double click Vehicles . In the Details panel , expand the Default Value section and add a new element to the vehicles array . Fill in the Make and Model of your vehicle . Fill in the Class value with your BP _ < vehicle _ name > file . Optionally , provide a set of recommended colors for the vehicle . Compile and save . 10 . Test the vehicle . Launch Carla , open a terminal in PythonAPI / examples and run the following command : python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 Note Even if you used upper case characters in your make and model , they need to be converted to lower case when passed to the filter .","title":"\u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#add-an-n-wheeled-vehicle","text":"Adding an N wheeled vehicle follows the same import pipeline as that for 4 wheeled vehicles above with a few steps that are different . 5 . Configure the Animation Blueprint for an N wheeled vehicle Search for BaseVehiclePawnNW and press Select . 6 . Prepare the vehicle and wheel blueprints Go to the folder of any native Carla vehicles in Carla / Blueprints / Vehicles . From the Content Browser , copy the four wheel blueprints into the blueprint folder for your own vehicle . Rename the files to replace the old vehicle name with your own vehicle name . Copy the four wheels and copy again for additional wheels . In the case of a 6 wheeled vehicle , you will need 6 different wheels : FLW , FRW , MLW , MRW , RLW , RRW . 7 . Configure the wheel blueprints Follow section 7 as above for the 4 wheeled vehicle . The key difference in the case of an N wheeled vehicle is those affected by handbrake and steering parameters . In some vehicles ( like for example a long wheelbase truck ) the front 2 pairs of wheels will steer , and one set may steer more than others . The rearmost pairs may be affected by handbrake , the specifics will depend upon the vehicle you are modelling . 8 . Configure vehicle blueprint In the Details panel , search for wheel . You will find settings for each of the wheels . For each one , click on Wheel Class and search for the BP _ _ file that corresponds to the correct wheel position . This is correct , but just to specify , in the case of N wheeled vehicles , you need to set ALL the wheels . This is an example with a 6 wheeled vehicle : Finally , an additional consideration is setting the differential . In the case of a 4 wheeled vehicle , we have different presets of differentials ( Limited Slip , Open 4W etc . ) but with N wheeled vehicles , you need to choose on which wheels you want to apply torque . In this case , we have chosen only the middle and rear wheels have torque , while the front wheels don \u2019 t , you can specify other configurations . The numbers are going to be the same as the image above this text ( e . g . 0 will be the Front Left Wheel , as specified above ) . All other parameters such as engine , transmission , steering curve , are the same as 4 wheeled vehicles .","title":"Add an N wheeled vehicle"},{"location":"tuto_A_add_vehicle/#add-a-2-wheeled-vehicle","text":"Adding 2 wheeled vehicles is similar to adding a 4 wheeled one but due to the complexity of the animation you ' ll need to set up aditional bones to guide the driver ' s animation . Here is the link to the reference skeleton for 2 wheeled vehicles . As with the 4 wheeled vehicles , orient the model towards positive \" x \" and every bone axis towards positive x and with the z axis facing upwards . Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . Import fbx as Skelletal Mesh to its own folder inside Content / Carla / Static / Vehicles / 2Wheeled . When importing select \" General2WheeledVehicleSkeleton \" as skelleton A Physics asset should be automatically created and linked . 2 . Tune the Physics asset . Delete the automatically created ones and add boxes to the BikeBody bone trying to match the shape as possible , make sure generate hit events is enabled . Add a sphere for each wheel and set their \" Physics Type \" to \" Kinematic \" . 3 . Create folder Content / Blueprints / Vehicles / < vehicle - model > 4 . Inside that folder create two blueprint classes derived from \" VehicleWheel \" class . Call them < vehicle - model > _ FrontWheel and < vehicle - model > _ RearWheel . Set their \" Shape Radius \" to exactly match the mesh wheel radius ( careful , radius not diameter ) . Set their \" Tire Config \" to \" CommonTireConfig \" . On the front wheel uncheck \" Affected by Handbrake \" and on the rear wheel set \" Steer Angle \" to zero . 5 . Inside the same folder create a blueprint class derived from Base2WheeledVehicle call it < vehicle - model > . Open it for edit and select component \" Mesh \" , setup the \" Skeletal Mesh \" and the \" Anim Class \" to the corresponding ones . Then select the VehicleBounds component and set the size to cover vehicle ' s area as seen from above . 6 . Select component \" VehicleMovement \" , under \" Vehicle Setup \" expand \" Wheel Setups \" , setup each wheel . 0 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 1 : Wheel Class = < vehicle - model > _ FrontWheel , Bone Name = FrontWheel 2 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel 3 : Wheel Class = < vehicle - model > _ RearWheel , Bone Name = RearWheel ( You ' ll notice that we are basically placing two wheels in each bone . The vehicle class unreal provides does not support vehicles with wheel numbers different from 4 so we had to make it believe the vehicle has 4 wheels ) 7 . Select the variable \" is bike \" and tick it if your model is a bike . This will activate the pedalier rotation . Leave unmarked if you are setting up a motorbike . 8 . Find the variable back Rotation and set it as it fit better select the component SkeletalMesh ( The driver ) and move it along x axis until its in the seat position . 9 . Test it , go to CarlaGameMode blueprint and change \" Default Pawn Class \" to the newly created bike blueprint .","title":"Add a 2 wheeled vehicle"},{"location":"tuto_A_create_standalone/","text":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u72ec\u7acb \u5305"},{"location":"tuto_A_create_standalone/#_1","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305","title":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305"},{"location":"tuto_A_create_standalone/#carla","text":"\u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#docker","text":"\u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2","title":"\u4f7f\u7528 Docker \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#carla_1","text":"\u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305"},{"location":"tuto_A_material_customization/","text":"\u6750\u8d28 \u5b9a\u5236 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002 \u5916\u89c2 \u7279\u6027 \u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5efa\u7b51 \u6750\u8d28 \u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_1","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_2","text":"\u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002","title":"\u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_3","text":"\u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002","title":"\u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_4","text":"\u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u5916\u89c2 \u7279\u6027"},{"location":"tuto_A_material_customization/#_5","text":"\u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002","title":"\u5efa\u7b51 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_6","text":"\u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5b9a\u5236 \u5efa\u7b51\u6750\u6599"},{"location":"tuto_D_contribute_assets/","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_contribute_assets/#_1","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_create_semantic_tags/","text":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID \u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u . 5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_1","text":"\u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_2","text":"","title":"\u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#1-id","text":"\u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"1 . \u521b\u5efa \u6807\u7b7e ID"},{"location":"tuto_D_create_semantic_tags/#2","text":"\u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6\u5939"},{"location":"tuto_D_create_semantic_tags/#3","text":"3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002","title":"3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb"},{"location":"tuto_D_create_semantic_tags/#4","text":"\u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u .","title":"4 . \u5b9a\u4e49 \u989c\u8272\u4ee3\u7801"},{"location":"tuto_D_create_semantic_tags/#5","text":"\u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002","title":"5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c"},{"location":"tuto_D_create_semantic_tags/#carlacityobjectlabel","text":"\u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel"},{"location":"tuto_D_create_sensor/","text":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002 1 - \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 \u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild 5 - \u4f7f\u7528 \u793a\u4f8b \u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01 \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; } \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u521b\u5efa \u4e00\u4e2a \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_2","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_create_sensor/#_3","text":"Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002","title":"\u4ecb\u7ecd"},{"location":"tuto_D_create_sensor/#_4","text":"\u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#1-","text":"\u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002","title":"1 - \u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#2-","text":"\u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002","title":"2 - \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668"},{"location":"tuto_D_create_sensor/#3-","text":"\u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002","title":"3 - \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61"},{"location":"tuto_D_create_sensor/#4-","text":"\u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild","title":"4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#5-","text":"\u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01","title":"5 - \u4f7f\u7528 \u793a\u4f8b"},{"location":"tuto_D_create_sensor/#_5","text":"","title":"\u9644\u5f55"},{"location":"tuto_D_create_sensor/#_6","text":"\u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates","title":"\u91cd\u7528 \u7f13\u51b2\u533a"},{"location":"tuto_D_create_sensor/#_7","text":"\u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; }","title":"\u5f02\u6b65 \u53d1\u9001\u6570\u636e"},{"location":"tuto_D_create_sensor/#_8","text":"\u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u5ba2\u6237\u7aef \u4f20\u611f\u5668"},{"location":"tuto_D_customize_vehicle_suspension/","text":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002 \u60ac\u67b6 \u7ec4 \u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002 \u8f7f \u8dd1\u8f66 \u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3 \u8d8a\u91ce \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck \u5361\u8f66 \u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola \u57ce\u5e02 \u8f66 \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius \u8d27\u8f66 \u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66","title":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_2","text":"\u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002","title":"\u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840\u77e5\u8bc6"},{"location":"tuto_D_customize_vehicle_suspension/#_3","text":"\u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002","title":"\u60ac\u67b6 \u7ec4"},{"location":"tuto_D_customize_vehicle_suspension/#_4","text":"\u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3","title":"\u8f7f \u8dd1\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_5","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck","title":"\u8d8a\u91ce"},{"location":"tuto_D_customize_vehicle_suspension/#_6","text":"\u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola","title":"\u5361\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_7","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius","title":"\u57ce\u5e02 \u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_8","text":"\u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u8d27\u8f66"},{"location":"tuto_D_generate_colliders/","text":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53 \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 1 - \u5bfc\u51fa \u8f66\u8f86 FBX \u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002 \u7269\u7406 \u78b0\u649e \u4f53 \u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX \u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c \u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX \u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u8be6\u7ec6 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406","title":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_2","text":"","title":"\u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#1-fbx","text":"\u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"1 - \u5bfc\u51fa \u8f66\u8f86 FBX"},{"location":"tuto_D_generate_colliders/#2-","text":"2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002","title":"2 - \u751f\u6210 \u4f4e\u5bc6\u5ea6 \u7f51\u683c"},{"location":"tuto_D_generate_colliders/#3-","text":"3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002","title":"3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_D_generate_colliders/#4-","text":"4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002","title":"4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_3","text":"\u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002","title":"\u7269\u7406 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#0-","text":"\u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002","title":"0 - \u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_generate_colliders/#1-","text":"\u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002","title":"1 - \u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a\u4e49 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#2-fbx","text":"\u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX"},{"location":"tuto_D_generate_colliders/#3-4-blender","text":"\u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002","title":"3 \u5230 4 - \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a\u4e49 \u8fb9\u754c"},{"location":"tuto_D_generate_colliders/#5-blender-fbx","text":"\u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002","title":"5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX"},{"location":"tuto_D_generate_colliders/#6-8-","text":"\u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406"},{"location":"tuto_D_make_release/","text":"\u5982\u4f55 \u53d1\u5e03 \u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002","title":"\u53d1\u5e03 \u7248\u672c"},{"location":"tuto_D_make_release/#_1","text":"\u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002","title":"\u5982\u4f55 \u53d1\u5e03"},{"location":"tuto_D_windows_debug/","text":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \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 \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \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 \u6253\u5f00 Cmake \u5de5\u7a0b windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a 1 . \u5f00 Carla \u7684 CMake \u9879\u76ee \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 \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 \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 \u53d1\u5e03 \u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002","title":"\u8c03\u8bd5\u7a0b\u5e8f"},{"location":"tuto_D_windows_debug/#windows-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 \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \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","title":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#cmake","text":"windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a 1 . \u5f00 Carla \u7684 CMake \u9879\u76ee \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 \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 \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":"\u6253\u5f00 Cmake \u5de5\u7a0b"},{"location":"tuto_D_windows_debug/#_1","text":"\u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002","title":"\u53d1\u5e03"},{"location":"tuto_E_gallery/","text":"Carla \u6559\u7a0b ( Python API ) \u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py Gallery \u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"\u5165\u95e8"},{"location":"tuto_E_gallery/#carla-python-api","text":"\u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py","title":"Carla \u6559\u7a0b ( Python API )"},{"location":"tuto_E_gallery/#gallery","text":"\u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"Gallery"},{"location":"tuto_G_G29_windows/","text":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u9988 \u529b\u53cd\u9988 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u7f57\u6280 G29 \u65b9\u5411\u76d8"},{"location":"tuto_G_G29_windows/#carla-g29","text":"ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u7684 \u529b\u53cd\u9988"},{"location":"tuto_G_G29_windows/#_1","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"},{"location":"tuto_G_add_friction_triggers/","text":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002 \u4f8b\u5b50 import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_1","text":"\u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002","title":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_2","text":"import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u4f8b\u5b50"},{"location":"tuto_G_bounding_boxes/","text":"\u8fb9\u754c \u6846 \u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) \u51e0\u4f55 \u53d8\u6362 \u51e0\u4f55\u53d8\u6362 \u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov ) \u8fb9\u754c \u6846 Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u6e32\u67d3 \u8fb9\u754c \u6846 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002 \u8f66\u8f86 \u8fb9\u754c \u6846 \u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u5bfc\u51fa \u8fb9\u754c \u6846 \u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002 Pascal VOC \u683c\u5f0f \u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation > \u5fae\u8f6f COCO \u683c\u5f0f \u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_1","text":"\u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_2","text":"\u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_bounding_boxes/#_3","text":"\u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov )","title":"\u51e0\u4f55\u53d8\u6362"},{"location":"tuto_G_bounding_boxes/#_4","text":"Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ]","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002","title":"\u6e32\u67d3 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_6","text":"\u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u8f66\u8f86 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_7","text":"\u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u4e8c\u7ef4 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_8","text":"\u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002","title":"\u5bfc\u51fa \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#pascal-voc","text":"\u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation >","title":"Pascal VOC \u683c\u5f0f"},{"location":"tuto_G_bounding_boxes/#coco","text":"\u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u5fae\u8f6f COCO \u683c\u5f0f"},{"location":"tuto_G_carsim_integration/","text":"CarSim \u96c6\u6210 Carla \u4e0e CarSim \u7684 \u96c6\u6210 \u5141\u8bb8 \u5c06 Carla \u4e2d \u7684 \u8f66\u8f86 \u63a7\u5236 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u6240\u6709 \u5fc5\u9700 \u7684 \u7269\u7406 \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u65b0 \u72b6\u6001 \u8fd4\u56de \u7ed9 Carla \u3002 \u672c\u9875 \u5411 \u60a8 \u5c55\u793a \u5982\u4f55 \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u89e3\u91ca Carla \u548c CarSim \u4e4b\u95f4 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u5982\u4f55 \u5173\u8054 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 CarSim \u96c6\u6210 \u5728 Carla \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8bbe\u7f6e CarSim \u751f\u6210 . sim \u6587\u4ef6 \u5728 Windows \u4e0a \u5728 Ubuntu \u4e0a Vehicle sizes Run the simulation \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 : Get the plugin here . \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 Vehicle sizes Run the simulation","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 : Get the plugin here . \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 \" \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 Project Chrono \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # Spawn your vehicle vehicle = world . spawn _ actor ( bp , spawn _ point ) # Set the base path base _ path = \" / path / to / carla / Build / chrono - install / share / chrono / data / vehicle / \" # Set the template files vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # Enable Chrono physics 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 \"","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 Project Chrono \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # Spawn your vehicle vehicle = world . spawn _ actor ( bp , spawn _ point ) # Set the base path base _ path = \" / path / to / carla / Build / chrono - install / share / chrono / data / vehicle / \" # Set the template files vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # Enable Chrono physics vehicle . enable _ chrono _ physics ( 5000 , 0.002 , vehicle _ json , powertrain _ json , tire _ json , base _ path ) \u60a8 \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c manual _ control _ chrono . py \u5c1d\u8bd5 Chrono \u7269\u7406 \u96c6\u6210 \u3002 \u8fd0\u884c \u811a\u672c \u540e \uff0c \u6309 Ctrl + o \u542f\u7528 Chrono \u3002","title":"\u542f\u7528 Chrono \u7269\u7406"},{"location":"tuto_G_chrono/#_2","text":"\u6b64 \u96c6\u6210 \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u6062\u590d \u4e3a Carla \u9ed8\u8ba4 \u7269\u7406 \u72b6\u6001 \u3002","title":"\u5c40\u9650\u6027"},{"location":"tuto_G_control_vehicle_physics/","text":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( ) \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b"},{"location":"tuto_G_control_vehicle_physics/#_1","text":"\u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e","title":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027"},{"location":"tuto_G_control_vehicle_physics/#_2","text":"import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u8f66\u8f86 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b"},{"location":"tuto_G_control_vehicle_physics/#_3","text":"\u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e"},{"location":"tuto_G_control_walker_skeletons/","text":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u751f\u6210 \u884c\u4eba \u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point ) \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_1","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236"},{"location":"tuto_G_control_walker_skeletons/#_2","text":"\u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R","title":"\u884c\u4eba \u9aa8\u9abc \u7ed3\u6784"},{"location":"tuto_G_control_walker_skeletons/#_3","text":"\u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b","title":"\u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_4","text":"\u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_control_walker_skeletons/#_5","text":"\u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point )","title":"\u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_control_walker_skeletons/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_instance_segmentation_sensor/","text":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) \u793a\u4f8b \u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' ) \u56fe\u50cf \u8f93\u51fa \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_1","text":"\u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' )","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_2","text":"\u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' )","title":"\u793a\u4f8b"},{"location":"tuto_G_instance_segmentation_sensor/#_3","text":"\u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u56fe\u50cf \u8f93\u51fa"},{"location":"tuto_G_openstreetmap/","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002 \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a Linux # \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) Windows import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] ) \u5bfc\u5165 Carla \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002 B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap","text":"\u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#carla-openstreetmaps","text":"\u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps"},{"location":"tuto_G_openstreetmap/#openstreetmap-opendrive","text":"\u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a","title":"\u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f"},{"location":"tuto_G_openstreetmap/#linux","text":"# \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Linux"},{"location":"tuto_G_openstreetmap/#windows","text":"import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Windows"},{"location":"tuto_G_openstreetmap/#_1","text":"Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] )","title":"\u751f\u6210 \u4ea4\u901a\u706f"},{"location":"tuto_G_openstreetmap/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002","title":"\u5bfc\u5165 Carla"},{"location":"tuto_G_openstreetmap/#a","text":"\u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002","title":"A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c"},{"location":"tuto_G_openstreetmap/#b-xodr-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002","title":"B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_openstreetmap/#c-osm-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_pedestrian_bones/","text":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba \u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( ) AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u589e\u91cf ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002 \u76f8\u673a \u51e0\u4f55 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6784\u5efa \u9aa8\u67b6 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a \u603b\u7ed3 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#api","text":"\u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002","title":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#_1","text":"\u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_pedestrian_bones/#carla","text":"\u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( )","title":"\u5728 Carla \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_pedestrian_bones/#ai","text":"\u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u589e\u91cf ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002","title":"AI \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70"},{"location":"tuto_G_pedestrian_bones/#_2","text":"\u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K","title":"\u76f8\u673a \u51e0\u4f55"},{"location":"tuto_G_pedestrian_bones/#_3","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a","title":"\u6784\u5efa \u9aa8\u67b6"},{"location":"tuto_G_pedestrian_bones/#_4","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u603b\u7ed3"},{"location":"tuto_G_pedestrian_visual/","text":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce","title":"\u884c\u4eba \u89c6\u89c9"},{"location":"tuto_G_pedestrian_visual/#_1","text":"","title":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce"},{"location":"tuto_G_pygame/","text":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236 PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) \u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#pygame","text":"PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_pygame/#_2","text":"\u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) )","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_pygame/#pygame_1","text":"\u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"\u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c \u6982\u8ff0 \u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002 \u8bbe\u7f6e \u4eff\u771f \u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh \u5730\u56fe \u8bbe\u7f6e \u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2 \u5929\u6c14 \u8bbe\u7f6e \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8 \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 Carla \u4ea4\u901a \u548c \u884c\u4eba Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002 SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 RGB \u76f8\u673a RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002 \u6df1\u5ea6 \u76f8\u673a \u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right . \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002 \u975e \u6e32\u67d3 \u6a21\u5f0f \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002 \u5feb\u901f \u4eff\u771f \u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002 \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 \u505c\u6b62 \u8bb0\u5f55 \u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( ) \u5229\u7528 \u8bb0\u5f55 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py \u67e5\u8be2 \u4e8b\u4ef6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002 \u6539\u53d8 \u5929\u6c14 \u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002 \u6559\u7a0b \u811a\u672c \u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_2","text":"\u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002","title":"\u6982\u8ff0"},{"location":"tuto_G_retrieve_data/#_3","text":"\u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh","title":"\u8bbe\u7f6e \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_4","text":"\u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2","title":"\u5730\u56fe \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_5","text":"\u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8","title":"\u5929\u6c14 \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_6","text":"\u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002","title":"\u8bbe\u7f6e \u4ea4\u901a\u6d41\u91cf"},{"location":"tuto_G_retrieve_data/#carla","text":"Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002","title":"Carla \u4ea4\u901a \u548c \u884c\u4eba"},{"location":"tuto_G_retrieve_data/#sumo","text":"Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a"},{"location":"tuto_G_retrieve_data/#_7","text":"\u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002","title":"\u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_8","text":"\u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' )","title":"\u751f\u6210 \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_9","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) )","title":"\u653e\u7f6e \u89c2\u5bdf\u8005"},{"location":"tuto_G_retrieve_data/#_10","text":"\u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u8bbe\u7f6e \u57fa\u672c \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#rgb","text":"RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output","title":"RGB \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_11","text":"\u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors","title":"\u68c0\u6d4b\u5668"},{"location":"tuto_G_retrieve_data/#_12","text":"\u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output","title":"\u5176\u4ed6 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_13","text":"\u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002","title":"\u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_14","text":"\u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right .","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_15","text":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_16","text":"\u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_17","text":"\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_18","text":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002","title":"\u975e \u6e32\u67d3 \u6a21\u5f0f"},{"location":"tuto_G_retrieve_data/#_19","text":"\u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002","title":"\u5feb\u901f \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_20","text":"\u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236"},{"location":"tuto_G_retrieve_data/#_21","text":"","title":"\u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_22","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' )","title":"\u5f00\u59cb \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_23","text":"\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002","title":"\u6355\u83b7 \u5e76 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_24","text":"\u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( )","title":"\u505c\u6b62 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_25","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py","title":"\u5229\u7528 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_26","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002","title":"\u67e5\u8be2 \u4e8b\u4ef6"},{"location":"tuto_G_retrieve_data/#_27","text":"\u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002","title":"\u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5"},{"location":"tuto_G_retrieve_data/#_28","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002","title":"\u68c0\u7d22 \u66f4 \u591a \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_29","text":"\u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather )","title":"\u6539\u53d8 \u5929\u6c14"},{"location":"tuto_G_retrieve_data/#_30","text":"\u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002","title":"\u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c"},{"location":"tuto_G_retrieve_data/#_31","text":"\u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u6559\u7a0b \u811a\u672c"},{"location":"tuto_G_rllib_integration/","text":"RLlib \u96c6\u6210 RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784 \u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c 1 . \u5b9e\u9a8c \u7c7b \u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002 2 . \u73af\u5883 \u914d\u7f6e \u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002 3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002 DQN \u793a\u4f8b \u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002 \u5728 AWS \u4e0a \u8fd0\u884c \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002 \u914d\u7f6e AWS \u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa \u8bad\u7ec3 AMI \u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size > \u914d\u7f6e \u96c6\u7fa4 \u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u8fd0\u884c \u8bad\u7ec3 \u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file > \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#rllib","text":"RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#_1","text":"\u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_rllib_integration/#_2","text":"\u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla","title":"\u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#aws","text":"\u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#rllib_1","text":"\u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002","title":"RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784"},{"location":"tuto_G_rllib_integration/#_3","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c","title":"\u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c"},{"location":"tuto_G_rllib_integration/#1","text":"\u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002","title":"1 . \u5b9e\u9a8c \u7c7b"},{"location":"tuto_G_rllib_integration/#2","text":"\u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002","title":"2 . \u73af\u5883 \u914d\u7f6e"},{"location":"tuto_G_rllib_integration/#3","text":"\u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002","title":"3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c"},{"location":"tuto_G_rllib_integration/#dqn","text":"\u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002","title":"DQN \u793a\u4f8b"},{"location":"tuto_G_rllib_integration/#aws_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c"},{"location":"tuto_G_rllib_integration/#aws_2","text":"\u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u914d\u7f6e AWS"},{"location":"tuto_G_rllib_integration/#ami","text":"\u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size >","title":"\u521b\u5efa \u8bad\u7ec3 AMI"},{"location":"tuto_G_rllib_integration/#_4","text":"\u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002","title":"\u914d\u7f6e \u96c6\u7fa4"},{"location":"tuto_G_rllib_integration/#_5","text":"\u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file >","title":"\u8fd0\u884c \u8bad\u7ec3"},{"location":"tuto_G_rllib_integration/#aws-dqn","text":"\u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b"},{"location":"tuto_G_scenic/","text":"Scenic \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002 Scenic \u57df Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30 \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002 \u9644\u52a0 \u53c2\u6570 Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"Scenic"},{"location":"tuto_G_scenic/#scenic","text":"\u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570","title":"Scenic"},{"location":"tuto_G_scenic/#_1","text":"\u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_scenic/#scenic_1","text":"Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c","title":"Scenic \u57df"},{"location":"tuto_G_scenic/#carla-scenic","text":"\u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30","title":"\u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f"},{"location":"tuto_G_scenic/#_2","text":"\u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002","title":"\u8fd0\u884c \u573a\u666f"},{"location":"tuto_G_scenic/#_3","text":"Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"\u9644\u52a0 \u53c2\u6570"},{"location":"tuto_G_texture_streaming/","text":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406 Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002 \u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002 \u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406 \u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u66f4\u65b0 \u7eb9\u7406 \u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture ) \u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0 \u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api","text":"Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90"},{"location":"tuto_G_texture_streaming/#_2","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002","title":"\u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528"},{"location":"tuto_G_texture_streaming/#api_1","text":"\u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_3","text":"import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_texture_streaming/#_4","text":"\u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture )","title":"\u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api_2","text":"\u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0"},{"location":"tuto_G_traffic_light/","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206 \u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a \u4ea4\u901a\u706f \u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) 1 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location ) 2 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848 def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time 3 \u3001 \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002 4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) ) 4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848 def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"\u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528"},{"location":"tuto_G_traffic_light/#get_traffic_light","text":"","title":"\u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09"},{"location":"tuto_G_traffic_light/#carla","text":"\u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206","title":"\u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e"},{"location":"tuto_G_traffic_light/#python","text":"","title":"\u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a\u706f"},{"location":"tuto_G_traffic_light/#carla_1","text":"client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings )","title":"\u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5"},{"location":"tuto_G_traffic_light/#_1","text":"traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' )","title":"\u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff\u706f \u5bf9\u8c61"},{"location":"tuto_G_traffic_light/#1","text":"def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location )","title":"1 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f"},{"location":"tuto_G_traffic_light/#2","text":"def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time","title":"2 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#3","text":"def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002","title":"3 \u3001 \u4fee\u6539 \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#4","text":"","title":"4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#41","text":"def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) )","title":"4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41\u91cf"},{"location":"tuto_G_traffic_light/#42","text":"def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002 \u6307\u5b9a \u8f66\u8f86 \u884c\u9a76 \u8def\u7ebf \u884c\u9a76\u8def\u7ebf \u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_1","text":"\u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_2","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_3","text":"\u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_4","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_5","text":"\u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u6307\u5b9a \u8f66\u8f86 \u884c\u9a76\u8def\u7ebf"},{"location":"tuto_G_traffic_prediction/","text":"\u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_G_traffic_prediction/#_1","text":"\u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u4ea4\u901a\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_M_add_map_alternative/","text":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002 \u63d2\u4ef6 \u5b89\u88c5 1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002 \u5bfc\u5165 \u5730\u56fe 1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002 \u624b\u52a8 \u5bfc\u5165 \u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#roadrunner","text":"MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002","title":"RoadRunner \u63d2\u4ef6 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_2","text":"1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002","title":"\u63d2\u4ef6 \u5b89\u88c5"},{"location":"tuto_M_add_map_alternative/#_3","text":"1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002","title":"\u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_alternative/#_4","text":"\u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u624b\u52a8 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_5","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_add_map_package/","text":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002 Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"\u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165","title":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#_1","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_package/#carla_1","text":"1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002 \u5730\u56fe \u5bfc\u5165 1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#carla","text":"\u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#_1","text":"\u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_source/#_2","text":"1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002","title":"\u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/#_3","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_add_tl/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6807\u5fd7 \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_2","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u7ea2\u7eff\u706f"},{"location":"tuto_M_custom_add_tl/#_3","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u7ea2\u7eff\u706f \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_buildings/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002 \u5efa\u7b51 \u7ed3\u6784 \u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X and \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 \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \uff0c \u7b49\u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_2","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_3","text":"\u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X and \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 \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \uff0c \u7b49\u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002","title":"\u7ed3\u6784 \u4fee\u6539"},{"location":"tuto_M_custom_buildings/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_layers/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_1","text":"\u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_2","text":"\u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002","title":"\u6dfb\u52a0 \u65b0 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_3","text":"1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002","title":"\u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_4","text":"\u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002","title":"\u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879"},{"location":"tuto_M_custom_layers/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_map_overview/","text":"\u6dfb\u52a0 \u65b0 \u5730\u56fe Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6982\u8ff0 \u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002 \u751f\u6210 Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002 \u5bfc\u5165 \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a \u5b9a\u5236 \u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Carla \u4e2d \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_1","text":"Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u6dfb\u52a0 \u65b0 \u5730\u56fe"},{"location":"tuto_M_custom_map_overview/#_2","text":"\u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002","title":"\u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_3","text":"Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002","title":"\u751f\u6210"},{"location":"tuto_M_custom_map_overview/#_4","text":"\u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a","title":"\u5bfc\u5165"},{"location":"tuto_M_custom_map_overview/#_5","text":"\u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002","title":"\u5b9a\u5236"},{"location":"tuto_M_custom_map_overview/#_6","text":"\u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_custom_road_painter/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_1","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_2","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_M_custom_road_painter/#_3","text":"\u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_custom_road_painter/#_4","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807"},{"location":"tuto_M_custom_road_painter/#_5","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_M_custom_road_painter/#_6","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_M_custom_road_painter/#_7","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2"},{"location":"tuto_M_custom_road_painter/#_8","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_weather_landscape/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u5929\u6c14 \u5b9a\u5236 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 BP _ Sky \u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002 BP _ Weather \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002 \u6dfb\u52a0 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002 BP _ RepSpline \u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002 BP _ Spline \u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example . BP _ Wall \u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002 BP _ SplinePoweLine BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_2","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002","title":"\u5929\u6c14 \u5b9a\u5236"},{"location":"tuto_M_custom_weather_landscape/#bp_sky","text":"\u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002","title":"BP _ Sky"},{"location":"tuto_M_custom_weather_landscape/#bp_weather","text":"\u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002","title":"BP _ Weather"},{"location":"tuto_M_custom_weather_landscape/#_3","text":"\u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002","title":"\u6dfb\u52a0 \u5e8f\u5217\u5316 \u7f51\u683c"},{"location":"tuto_M_custom_weather_landscape/#bp_repspline","text":"\u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002","title":"BP _ RepSpline"},{"location":"tuto_M_custom_weather_landscape/#bp_spline","text":"\u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example .","title":"BP _ Spline"},{"location":"tuto_M_custom_weather_landscape/#bp_wall","text":"\u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002","title":"BP _ Wall"},{"location":"tuto_M_custom_weather_landscape/#bp_splinepoweline","text":"BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002","title":"BP _ SplinePoweLine"},{"location":"tuto_M_custom_weather_landscape/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_map/","text":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65","title":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"tuto_M_generate_map/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_map/#roadrunner_2","text":"\u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_3","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_M_generate_map/#_2","text":"\u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_pedestrian_navigation/","text":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002 \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002 \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a 1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_1","text":"\u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_2","text":"\u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_pedestrian_navigation/#_3","text":"\u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002","title":"\u884c\u4eba \u5bfc\u822a \u7f51\u683c"},{"location":"tuto_M_generate_pedestrian_navigation/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002","title":"\u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879"},{"location":"tuto_M_generate_pedestrian_navigation/#_5","text":"1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_manual_map_package/","text":"\u624b\u52a8 \u5305 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u624b\u52a8 \u51c6\u5907 \u5730\u56fe\u5305"},{"location":"tuto_M_manual_map_package/#_1","text":"\u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0","title":"\u624b\u52a8 \u5305 \u51c6\u5907"},{"location":"tuto_M_manual_map_package/#_2","text":"","title":"\u6807\u51c6 \u5730\u56fe"},{"location":"tuto_M_manual_map_package/#_3","text":"\u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_M_manual_map_package/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_content_authoring_maps/","text":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002 \u5927 \u5730\u56fe \u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002 \u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51 \u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002 TrueVision \u8bbe\u8ba1 \u5668 RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002 \u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u6750\u8d28 Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a \u9053\u8def \u753b\u5bb6 \u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u6811\u6728 \u548c \u690d\u88ab Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002 \u6811\u53f6 \u5de5\u5177 \u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#-","text":"Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_1","text":"\u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_content_authoring_maps/#_2","text":"\u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_3","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#roadrunner","text":"\u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002","title":"\u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51"},{"location":"tuto_content_authoring_maps/#truevision","text":"RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002","title":"TrueVision \u8bbe\u8ba1 \u5668"},{"location":"tuto_content_authoring_maps/#carla","text":"Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002","title":"\u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla"},{"location":"tuto_content_authoring_maps/#_4","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002","title":"\u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_5","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u4ea4\u901a\u706f"},{"location":"tuto_content_authoring_maps/#_6","text":"\u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u4ea4\u901a\u6807\u5fd7"},{"location":"tuto_content_authoring_maps/#_7","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_8","text":"\u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002","title":"\u9053\u8def \u753b\u5bb6"},{"location":"tuto_content_authoring_maps/#_9","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_content_authoring_maps/#_10","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61"},{"location":"tuto_content_authoring_maps/#_11","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_12","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_content_authoring_maps/#_13","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2"},{"location":"tuto_content_authoring_maps/#_14","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002","title":"\u6811\u6728 \u548c \u690d\u88ab"},{"location":"tuto_content_authoring_maps/#_15","text":"\u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002","title":"\u6811\u53f6 \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#_16","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_content_authoring_vehicles/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165 \u5efa\u6a21 \u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002 \u547d\u540d \u7ea6\u5b9a \u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86 \u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002 \u5bfc\u5165 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002 \u6dfb\u52a0 \u7535\u67a2 \u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002 \u8bbe\u7f6e \u7236\u7ea7 \u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002 \u5c06 \u6c7d\u8f66 \u96f6\u4ef6 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc \u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002 Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6 Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002 \u5bfc\u51fa \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002 \u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7 \u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002 \u521b\u5efa \u52a8\u753b \u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002 \u521b\u5efa \u84dd\u56fe \u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002 \u6750\u8d28 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28 Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a \u989c\u8272 ( Color ) \u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) \u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002 \u73bb\u7483 \u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002 \u73bb\u7483 \u7f51\u683c \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002 \u73bb\u7483 \u6750\u8d28 \u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002 \u5355\u5c42 \u73bb\u7483 \u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002 \u8f66\u8f6e \u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel \u8f66\u8f6e \u84dd\u56fe \u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a \u78b0\u649e \u7f51\u683c \u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002 \u8f6e\u80ce \u914d\u7f6e \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002 \u8f66\u8f6e \u5c3a\u5bf8 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002 \u60ac\u67b6 \u7279\u6027 \u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002 \u706f \u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002 UV \u8d34\u56fe \u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002 \u5bfc\u5165 \u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#-","text":"Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_1","text":"\u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002","title":"\u5efa\u6a21"},{"location":"tuto_content_authoring_vehicles/#_2","text":"\u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002","title":"\u547d\u540d \u7ea6\u5b9a"},{"location":"tuto_content_authoring_vehicles/#_3","text":"\u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002","title":"\u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_4","text":"\u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles/#_5","text":"\u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002","title":"\u6dfb\u52a0 \u7535\u67a2"},{"location":"tuto_content_authoring_vehicles/#_6","text":"\u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002","title":"\u8bbe\u7f6e \u7236\u7ea7"},{"location":"tuto_content_authoring_vehicles/#_7","text":"\u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002","title":"\u5c06 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc"},{"location":"tuto_content_authoring_vehicles/#blender-4","text":"Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002","title":"Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6"},{"location":"tuto_content_authoring_vehicles/#_8","text":"\u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002","title":"\u5bfc\u51fa"},{"location":"tuto_content_authoring_vehicles/#_9","text":"\u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002","title":"\u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_content_authoring_vehicles/#_10","text":"\u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002","title":"\u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7"},{"location":"tuto_content_authoring_vehicles/#_11","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002","title":"\u521b\u5efa \u52a8\u753b"},{"location":"tuto_content_authoring_vehicles/#_12","text":"\u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002","title":"\u521b\u5efa \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_13","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_14","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a","title":"\u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#color","text":"\u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a","title":"\u989c\u8272 ( Color )"},{"location":"tuto_content_authoring_vehicles/#clear-coat","text":"\u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002","title":"\u900f\u660e \u6d82\u5c42 ( Clear coat )"},{"location":"tuto_content_authoring_vehicles/#orange-peel","text":"\u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002","title":"\u7c92\u72b6 \u8868\u9762 ( Orange peel )"},{"location":"tuto_content_authoring_vehicles/#flakes","text":"\u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f","title":"\u8584\u7247 ( Flakes )"},{"location":"tuto_content_authoring_vehicles/#dust","text":"\u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u7070\u5c18 ( Dust )"},{"location":"tuto_content_authoring_vehicles/#_15","text":"\u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002","title":"\u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_16","text":"\u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002","title":"\u73bb\u7483 \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_17","text":"\u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002","title":"\u73bb\u7483 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_18","text":"\u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002","title":"\u5355\u5c42 \u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_19","text":"\u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel","title":"\u8f66\u8f6e"},{"location":"tuto_content_authoring_vehicles/#_20","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a","title":"\u8f66\u8f6e \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_21","text":"\u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002","title":"\u78b0\u649e \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_22","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002","title":"\u8f6e\u80ce \u914d\u7f6e"},{"location":"tuto_content_authoring_vehicles/#_23","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002","title":"\u8f66\u8f6e \u5c3a\u5bf8"},{"location":"tuto_content_authoring_vehicles/#_24","text":"\u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002","title":"\u60ac\u67b6 \u7279\u6027"},{"location":"tuto_content_authoring_vehicles/#_25","text":"\u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002","title":"\u706f"},{"location":"tuto_content_authoring_vehicles/#uv","text":"\u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002","title":"UV \u8d34\u56fe"},{"location":"tuto_content_authoring_vehicles/#_26","text":"\u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles_materials/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"Tuto content authoring vehicles materials"},{"location":"tuto_content_authoring_vehicles_materials/#-","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599"},{"location":"tuto_content_authoring_vehicles_materials/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a"},{"location":"tuto_first_steps/","text":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( autonomous driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 \u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 \u52a0\u8f7d \u5730\u56fe \u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) ) \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' ) \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( autonomous driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86","title":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla_1","text":"\u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002","title":"\u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237\u7aef"},{"location":"tuto_first_steps/#_1","text":"\u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u52a0\u8f7d \u5730\u56fe"},{"location":"tuto_first_steps/#_2","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a","title":"\u89c2\u5bdf\u8005 \u5bfc\u822a"},{"location":"tuto_first_steps/#_3","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272"},{"location":"tuto_first_steps/#_4","text":"\u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002","title":"\u6dfb\u52a0 \u4f20\u611f\u5668"},{"location":"tuto_first_steps/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86"},{"location":"tuto_first_steps/#_6","text":"\u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) )","title":"\u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_first_steps/#_7","text":"Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' )","title":"\u9009\u62e9 \u4f60 \u7684 \u5730\u56fe"},{"location":"tuto_first_steps/#_8","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86"},{"location":"tutorials/","text":"\u6559\u7a0b \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002 \u4e00\u822c Carla \u7279\u70b9 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002 \u6784\u5efa \u4e0e \u96c6\u6210 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002 \u8d44\u4ea7 \u548c \u5730\u56fe \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002 \u5f00\u53d1 \u5f00\u53d1\u8005 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u6559\u7a0b"},{"location":"tutorials/#_1","text":"\u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002","title":"\u6559\u7a0b"},{"location":"tutorials/#_2","text":"","title":"\u4e00\u822c"},{"location":"tutorials/#carla","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002","title":"Carla \u7279\u70b9"},{"location":"tutorials/#_3","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002","title":"\u6784\u5efa \u4e0e \u96c6\u6210"},{"location":"tutorials/#_4","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002","title":"\u8d44\u4ea7 \u548c \u5730\u56fe"},{"location":"tutorials/#_5","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002","title":"\u5f00\u53d1\u8005"},{"location":"tutorials/#_6","text":"\u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u89c6\u9891\u6559\u7a0b"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/","text":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528 \u5b89\u88c5 \u8fdb\u5236 \u4e8c\u8fdb\u5236 add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx \u5b89\u88c5 \u53ef\u89c6 \u53ef\u89c6\u5316 apt install libgl1 - mesa - glx xvfb \u5b89\u88c5 conda \u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#fenics","text":"","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_1","text":"add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx","title":"\u5b89\u88c5 \u4e8c\u8fdb\u5236"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_2","text":"apt install libgl1 - mesa - glx xvfb","title":"\u5b89\u88c5 \u53ef\u89c6\u5316"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#conda","text":"\u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"\u5b89\u88c5 conda"},{"location":"OpenRadioss/FEniCSBuildFromSource/","text":"\u73af\u5883 C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"FEniCSBuildFromSource"},{"location":"OpenRadioss/FEniCSBuildFromSource/#_1","text":"C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"\u73af\u5883"},{"location":"OpenRadioss/examples/","text":"\u793a\u4f8b \u6a21\u578b Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"Examples"},{"location":"OpenRadioss/examples/#_1","text":"Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"\u793a\u4f8b \u6a21\u578b"},{"location":"OpenRadioss/use_OpenRadioss_linux/","text":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1 \u73af\u5883 Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u6307\u4ee4 \u83b7\u53d6 \u6e90\u7801 LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git . OpenRadioss Starter \u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory OpenRadioss Engine \u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist \u81ea\u52a8 \u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09 cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi OpenRadioss \u7684 \u4f7f\u7528 \u524d \u5904\u7406 gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * ) \u8ba1\u7b97 \u5904\u7406 \u540e\u5904\u7406 ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002 bash \u811a\u672c myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002 \u8fd0\u884c \u7ed3\u679c \u603b\u7ed3 \u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002 To Do \u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss \u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = = OpenRadioss \u4e8c\u6b21 \u5f00\u53d1 \u4e8c\u6b21\u5f00\u53d1 READ _ MATERIAL _ MODELS . F \u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002 HM _ READ _ MAT . F \u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002 Radioss \u4e2d \u6750\u6599 \u672c\u6784 \u540c\u6027 \u5404\u5411\u540c\u6027 \u5f39\u6027 Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"use OpenRadioss linux"},{"location":"OpenRadioss/use_OpenRadioss_linux/#linux-openradioss","text":"","title":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_1","text":"Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u73af\u5883"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_2","text":"","title":"\u7f16\u8bd1 \u6307\u4ee4"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_3","text":"LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git .","title":"\u83b7\u53d6 \u6e90\u7801"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-starter","text":"\u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory","title":"OpenRadioss Starter"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-engine","text":"\u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist","title":"OpenRadioss Engine"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_4","text":"cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi","title":"\u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss","text":"","title":"OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_5","text":"gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * )","title":"\u524d \u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_6","text":"","title":"\u8ba1\u7b97"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_7","text":"ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002","title":"\u540e\u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#lsdyna","text":"","title":"\u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_8","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_linux/#bash","text":"myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002","title":"bash \u811a\u672c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_9","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_10","text":"\u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002","title":"\u603b\u7ed3"},{"location":"OpenRadioss/use_OpenRadioss_linux/#to-do","text":"\u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002","title":"To Do"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_1","text":"\u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = =","title":"\u5728 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_2","text":"","title":"OpenRadioss \u4e8c\u6b21\u5f00\u53d1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#read_material_modelsf","text":"\u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002","title":"READ _ MATERIAL _ MODELS . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#hm_read_matf","text":"\u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002","title":"HM _ READ _ MAT . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#radioss","text":"","title":"Radioss \u4e2d \u6750\u6599 \u672c\u6784"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_11","text":"Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"\u5404\u5411\u540c\u6027 \u5f39\u6027"},{"location":"OpenRadioss/use_OpenRadioss_windows/","text":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002 \u5904\u7406 \u6b65\u9aa4 \u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002 \u8fd0\u884c \u7ed3\u679c","title":"OpenRadios \u6709\u9650\u5143 \u4eff\u771f"},{"location":"OpenRadioss/use_OpenRadioss_windows/#windows-openradioss","text":"","title":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_1","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_2","text":"\u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002","title":"\u5904\u7406 \u6b65\u9aa4"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_3","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"algorithms/control/","text":"\u63a7\u5236 \u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb \u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002 \u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u6982\u8ff0 \uff1a PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002 \u7ec4\u4ef6 \uff1a \u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002 \u5e94\u7528 \uff1a \u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002 \u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 \u6982\u8ff0 \uff1a \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002 \u4e3b\u8981 \u7279\u5f81 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002 \u5e94\u7528 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \uff1a \u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u63a7\u5236"},{"location":"algorithms/control/#_1","text":"","title":"\u63a7\u5236"},{"location":"algorithms/control/#_2","text":"\u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002","title":"\u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/control/#pid","text":"","title":"\u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236\u5668"},{"location":"algorithms/control/#_3","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_4","text":"\u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002","title":"\u7ec4\u4ef6 \uff1a"},{"location":"algorithms/control/#_5","text":"\u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_6","text":"","title":"\u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236"},{"location":"algorithms/control/#_7","text":"\u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_8","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002","title":"\u4e3b\u8981 \u7279\u5f81 \uff1a"},{"location":"algorithms/control/#_9","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_10","text":"\u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe \uff1a"},{"location":"algorithms/control/#_11","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/localization/","text":"\u5b9a\u4f4d \u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002 \u5355\u72ec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_1","text":"","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_2","text":"ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002","title":"\u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/localization/#_3","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u5355\u72ec \u7684 \u4f20\u611f\u5668"},{"location":"algorithms/localization/#_4","text":"\u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u4f20\u611f\u5668 \u878d\u5408"},{"location":"algorithms/localization/#_5","text":"\u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/localization/#_6","text":"Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/perception/","text":"\u611f\u77e5 \u611f\u77e5 \u6a21\u5757 \u7b80\u4ecb ISS \u611f\u77e5 \u6a21\u5757 \u4e3a \u591a\u79cd \u611f\u77e5 \u4efb\u52a1 \u63d0\u4f9b \u652f\u6301 \uff0c \u4f8b\u5982 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u3001 2D \u7269\u4f53 \u8bc6\u522b \u3001 2D \u8bed\u4e49 \u5206\u5272 \u548c \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff08 Bird ' s Eye View , BEV \uff09 \u5730\u56fe \u751f\u6210 \u3002 \u6211\u4eec \u7684 \u56e2\u961f \u4e13\u6ce8 \u4e8e \u5f00\u53d1 \u548c \u5b8c\u5584 \u8fd9\u4e9b \u5173\u952e \u7684 \u611f\u77e5 \u4efb\u52a1 \u3002 \u8fd9\u4e9b \u4efb\u52a1 \u662f \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u5b89\u5168 \u3001 \u7cbe\u786e \u5730 \u5728 \u590d\u6742 \u73af\u5883 \u4e2d \u884c\u9a76 \u7684 \u57fa\u7840 \u3002 \u4efb\u52a1 ISS \u611f\u77e5 \u6a21\u5757 \u652f\u6301 \u7684 \u4e0d\u540c \u4efb\u52a1 \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u4e86\u89e3 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u53ca\u5176 \u5143\u7d20 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u91c7\u7528 \u5148\u8fdb \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6280\u672f \u6765 \u5b9e\u65f6 \u68c0\u6d4b \u548c \u5206\u6790 \u4e09\u7ef4 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5373\u4f7f \u5728 \u52a8\u6001 \u548c \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u4e2d \uff0c \u8fd9\u79cd \u529f\u80fd \u4e5f \u4f7f \u6211\u4eec \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u80fd\u591f \u505a\u51fa \u660e\u667a \u7684 \u51b3\u7b56 \u5e76 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 2D \u7269\u4f53 \u68c0\u6d4b \uff1a \u8bc6\u522b \u548c \u8bc6\u522b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u7684 \u7269\u4f53 \u5bf9\u4e8e \u5b89\u5168 \u5bfc\u822a \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u6211\u4eec \u7684 \u6846\u67b6 \u5229\u7528 \u5c16\u7aef \u7b97\u6cd5 \u6765 \u8bc6\u522b \u548c \u5206\u7c7b \u5404\u79cd \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u6807\u724c \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u589e\u5f3a \u6001\u52bf \u611f\u77e5 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u548c 2D \u7269\u4f53 \u68c0\u6d4b 2D \u8bed\u4e49 \u5206\u5272 \uff1a \u8bed\u4e49 \u5206\u5272 \u662f \u8be6\u7ec6 \u4e86\u89e3 \u73af\u5883 \u7684 \u4e00\u9879 \u91cd\u8981 \u4efb\u52a1 \u3002 \u6211\u4eec \u5229\u7528 \u6700 \u5148\u8fdb \u7684 \u6280\u672f \u5c06 \u573a\u666f \u5212\u5206 \u4e3a \u6709 \u610f\u4e49 \u7684 \u90e8\u5206 \uff0c \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u7406\u89e3 \u9053\u8def \u5e03\u5c40 \u5e76 \u66f4\u597d \u5730 \u54cd\u5e94 \u590d\u6742 \u7684 \u57ce\u5e02 \u666f\u89c2 \u3002 \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 BEV \u5730\u56fe \u751f\u6210 \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u751f\u6210 \u9e1f\u77b0 \u9e1f\u77b0\u56fe ( BEV ) \u5730\u56fe \uff0c \u63d0\u4f9b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u6574\u4f53 \u89c6\u56fe \u3002 \u8be5 \u5730\u56fe \u662f \u8def\u5f84 \u89c4\u5212 \u548c \u51b3\u7b56 \u7684 \u5b9d\u8d35 \u5de5\u5177 \uff0c \u53ef \u589e\u5f3a \u8f66\u8f86 \u9ad8\u6548 \u3001 \u5b89\u5168 \u5bfc\u822a \u7684 \u80fd\u529b \u3002 \u76ee\u524d \uff0c \u6211\u4eec \u6b63\u5728 \u52aa\u529b \u5f00\u53d1 \u8fd9\u4e9b \u6a21\u5757 \uff0c \u6211\u4eec \u5f88 \u9ad8\u5174 \u5730 \u544a\u8bc9 \u5927\u5bb6 \uff0c \u6211\u4eec \u5df2\u7ecf \u4e3a \u524d \u4e09\u4e2a \u4efb\u52a1 \u5f00\u53d1 \u4e86 \u521d\u59cb \u6a21\u578b \u521d\u59cb\u6a21\u578b \u3002 \u7136\u800c \uff0c \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u8fd9\u4e9b \u6a21\u578b \u4ecd \u5728 \u4e0d\u65ad \u5b8c\u5584 \u4e0d\u65ad\u5b8c\u5584 \uff0c \u4ee5 \u63d0\u9ad8 \u5176 \u6027\u80fd \u548c \u53ef\u9760 \u53ef\u9760\u6027 \u3002 \u6211\u4eec \u8fd8 \u63d0\u4f9b \u4e86 \u6709\u5173 ISS \u751f\u6210 \u7684 \u7269\u4f53 \u68c0\u6d4b \u7684 \u6570\u636e \u96c6 \u3002 \u4ecd \u5728 \u66f4\u65b0 \u3002","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","title":"\u4efb\u52a1"},{"location":"algorithms/planning/","text":"\u89c4\u5212 \u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb \u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b \u8def\u7ebf \u89c4\u5212 \u76ee\u6807 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002 \u8f93\u5165 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u8f93\u51fa \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u6311\u6218 \u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002 \u884c\u4e3a \u89c4\u5212 \u76ee\u6807 \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002 \u8f93\u51fa \u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002 \u6311\u6218 \u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u76ee\u6807 \u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002 \u8f93\u51fa \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002 \u6311\u6218 \u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/planning/#_1","text":"","title":"\u89c4\u5212"},{"location":"algorithms/planning/#_2","text":"\u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b","title":"\u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/planning/#_3","text":"","title":"\u8def\u7ebf \u89c4\u5212 "},{"location":"algorithms/planning/#_4","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_5","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_6","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_7","text":"\u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_8","text":"","title":"\u884c\u4e3a \u89c4\u5212"},{"location":"algorithms/planning/#_9","text":"\u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_10","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_11","text":"\u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_12","text":"\u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_13","text":"","title":"\u8fd0\u52a8 \u89c4\u5212"},{"location":"algorithms/planning/#_14","text":"\u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_15","text":"\u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_16","text":"\u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_17","text":"\u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_18","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/prediction/","text":"\u9884\u6d4b \u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd \u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u6982\u8ff0 \u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002 \u9002\u7528 \u9002\u7528\u6027 \u548c \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002 \u793a\u4f8b \u7528\u4f8b \u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002 Motion Transformer \u6982\u8ff0 Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ] \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ? \u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002 \u67b6\u6784 \u548c \u7ec4\u4ef6 \u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002 \u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"Prediction"},{"location":"algorithms/prediction/#_1","text":"","title":"\u9884\u6d4b"},{"location":"algorithms/prediction/#_2","text":"\u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002","title":"\u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/prediction/#_3","text":"","title":"\u6052\u901f \u8fd0\u52a8 \u9884\u6d4b\u5668"},{"location":"algorithms/prediction/#_4","text":"\u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#_5","text":"\u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002","title":"\u9002\u7528\u6027 \u548c \u5c40\u9650\u6027"},{"location":"algorithms/prediction/#_6","text":"\u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002","title":"\u6570\u5b66\u6a21\u578b"},{"location":"algorithms/prediction/#_7","text":"\u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002","title":"\u793a\u4f8b \u7528\u4f8b"},{"location":"algorithms/prediction/#motion-transformer","text":"","title":"Motion Transformer"},{"location":"algorithms/prediction/#_8","text":"Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ]","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#motion-transformer_1","text":"\u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002","title":"\u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ?"},{"location":"algorithms/prediction/#_9","text":"\u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002","title":"\u67b6\u6784 \u548c \u7ec4\u4ef6"},{"location":"algorithms/prediction/#_10","text":"\u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002","title":"\u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6\u4fe1\u606f"},{"location":"algorithms/prediction/#_11","text":"\u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/prediction/#_12","text":"Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/Control_/","text":"Control Introduction to the Control Module The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) . PID Controller for Waypoint Tracking Overview : The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position . Components : The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change . Application : We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation . Model Predictive Control ( MPC ) for Trajectory Tracking Overview : Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory . Key Features : The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions . Application : The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers . Implementation Roadmap : Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"Control"},{"location":"algorithms/Control_/#control","text":"","title":"Control"},{"location":"algorithms/Control_/#introduction-to-the-control-module","text":"The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) .","title":"Introduction to the Control Module"},{"location":"algorithms/Control_/#pid-controller-for-waypoint-tracking","text":"","title":"PID Controller for Waypoint Tracking"},{"location":"algorithms/Control_/#overview","text":"The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position .","title":"Overview :"},{"location":"algorithms/Control_/#components","text":"The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change .","title":"Components :"},{"location":"algorithms/Control_/#application","text":"We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation .","title":"Application :"},{"location":"algorithms/Control_/#model-predictive-control-mpc-for-trajectory-tracking","text":"","title":"Model Predictive Control ( MPC ) for Trajectory Tracking"},{"location":"algorithms/Control_/#overview_1","text":"Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory .","title":"Overview :"},{"location":"algorithms/Control_/#key-features","text":"The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions .","title":"Key Features :"},{"location":"algorithms/Control_/#application_1","text":"The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers .","title":"Application :"},{"location":"algorithms/Control_/#implementation-roadmap","text":"Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios .","title":"Implementation Roadmap :"},{"location":"algorithms/Control_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"References"},{"location":"algorithms/Control_/pid/","text":"To - DO !","title":"PID Controller"},{"location":"algorithms/DRL/_index/","text":"Deep Reinforcement Learning Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center } Our Plan 1 . Problem Formulation Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors . 2 . Simulator Setup We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible . 3 . Baseline DRL Algorithm Selection Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch . 4 . Training in Simulation Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required . 5 . Transfer Learning and Domain Adaptation Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot . 6 . Safety Precautions Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings . 7 . Evaluation We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one . 8 . Iterate and Improve Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"Reinforcement Learning"},{"location":"algorithms/DRL/_index/#deep-reinforcement-learning","text":"Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center }","title":"Deep Reinforcement Learning"},{"location":"algorithms/DRL/_index/#our-plan","text":"","title":"Our Plan"},{"location":"algorithms/DRL/_index/#1-problem-formulation","text":"Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors .","title":"1 . Problem Formulation"},{"location":"algorithms/DRL/_index/#2-simulator-setup","text":"We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible .","title":"2 . Simulator Setup"},{"location":"algorithms/DRL/_index/#3-baseline-drl-algorithm-selection","text":"Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch .","title":"3 . Baseline DRL Algorithm Selection"},{"location":"algorithms/DRL/_index/#4-training-in-simulation","text":"Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required .","title":"4 . Training in Simulation"},{"location":"algorithms/DRL/_index/#5-transfer-learning-and-domain-adaptation","text":"Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot .","title":"5 . Transfer Learning and Domain Adaptation"},{"location":"algorithms/DRL/_index/#6-safety-precautions","text":"Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings .","title":"6 . Safety Precautions"},{"location":"algorithms/DRL/_index/#7-evaluation","text":"We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one .","title":"7 . Evaluation"},{"location":"algorithms/DRL/_index/#8-iterate-and-improve","text":"Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"8 . Iterate and Improve"},{"location":"algorithms/Mapping/","text":"To - DO ! !","title":"Mapping"},{"location":"algorithms/Planning_/","text":"Planning Introduction to the Planning Module The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center } Route Planning Objective The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] . Inputs The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles . Outputs The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles . Challenges There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient . Behavior Planning Objective The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] . Inputs To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data . Outputs The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives . Challenges In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases . Motion Planning Objective The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] . Inputs To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions . Outputs The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame . Challenges To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/Planning_/#planning","text":"","title":"Planning"},{"location":"algorithms/Planning_/#introduction-to-the-planning-module","text":"The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center }","title":"Introduction to the Planning Module"},{"location":"algorithms/Planning_/#route-planning","text":"","title":"Route Planning"},{"location":"algorithms/Planning_/#objective","text":"The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs","text":"The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs","text":"The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges","text":"There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient .","title":"Challenges"},{"location":"algorithms/Planning_/#behavior-planning","text":"","title":"Behavior Planning"},{"location":"algorithms/Planning_/#objective_1","text":"The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_1","text":"To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_1","text":"The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_1","text":"In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases .","title":"Challenges"},{"location":"algorithms/Planning_/#motion-planning","text":"","title":"Motion Planning"},{"location":"algorithms/Planning_/#objective_2","text":"The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_2","text":"To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_2","text":"The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_2","text":"To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping .","title":"Challenges"},{"location":"algorithms/Planning_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"References"},{"location":"algorithms/Planning_/frenet_lattice/","text":"frenet _ lattice The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc . Inputs The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc . Outputs The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost . FrenetPath ( class ) Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory . Instance Variables t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero . LatticePlanner ( class ) LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc . Instance Variables route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory . Methods _ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Frenet Optimal Trajectory"},{"location":"algorithms/Planning_/frenet_lattice/#frenet_lattice","text":"The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc .","title":"frenet _ lattice"},{"location":"algorithms/Planning_/frenet_lattice/#inputs","text":"The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc .","title":"Inputs"},{"location":"algorithms/Planning_/frenet_lattice/#outputs","text":"The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost .","title":"Outputs"},{"location":"algorithms/Planning_/frenet_lattice/#frenetpath-class","text":"Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory .","title":"FrenetPath ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables","text":"t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#latticeplanner-class","text":"LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc .","title":"LatticePlanner ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables_1","text":"route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#methods","text":"_ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Methods"},{"location":"algorithms/Planning_/lanelet_planner/","text":"Lanelet2Planner A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) . Instance Variables lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Lanelet2 Global Planner"},{"location":"algorithms/Planning_/lanelet_planner/#lanelet2planner","text":"A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) .","title":"Lanelet2Planner"},{"location":"algorithms/Planning_/lanelet_planner/#instance-variables","text":"lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Instance Variables"},{"location":"algorithms/Sensors/_BeamNG/","text":"Sensors for interaction between ISS and BeamNG . BeamNG Sensors { : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_BeamNG/#beamng-sensors","text":"{ : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_CARLA/","text":"Sensors in CARLA Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . Instance Variables is _ listening ( boolean ) When True the sensor will be waiting for data . Methods listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data . CarlaCamera The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera . CarlaLiDAR This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 . CarlaGNSS Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition . GNSS attributes Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) . Output attributes Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"CARLA Sensors"},{"location":"algorithms/Sensors/_CARLA/#sensors-in-carla","text":"Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary .","title":"Sensors in CARLA"},{"location":"algorithms/Sensors/_CARLA/#instance-variables","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"Instance Variables"},{"location":"algorithms/Sensors/_CARLA/#methods","text":"listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data .","title":"Methods"},{"location":"algorithms/Sensors/_CARLA/#carlacamera","text":"The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera .","title":"CarlaCamera"},{"location":"algorithms/Sensors/_CARLA/#carlalidar","text":"This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 .","title":"CarlaLiDAR"},{"location":"algorithms/Sensors/_CARLA/#carlagnss","text":"Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition .","title":"CarlaGNSS"},{"location":"algorithms/Sensors/_CARLA/#gnss-attributes","text":"Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) .","title":"GNSS attributes"},{"location":"algorithms/Sensors/_CARLA/#output-attributes","text":"Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"Output attributes"},{"location":"algorithms/Sensors/_index/","text":"Sensors in Self - driving Systems Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors"},{"location":"algorithms/Sensors/_index/#sensors-in-self-driving-systems","text":"Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors in Self - driving Systems"},{"location":"algorithms/perception_/","text":"Perception { : . d - inline - block } Introduction to the Perception Module The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision . Tasks The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Perception"},{"location":"algorithms/perception_/#perception","text":"{ : . d - inline - block }","title":"Perception"},{"location":"algorithms/perception_/#introduction-to-the-perception-module","text":"The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision .","title":"Introduction to the Perception Module"},{"location":"algorithms/perception_/#tasks","text":"The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Tasks"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/","text":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u53cd\u9988 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5 \u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#windowscarlag29","text":"\u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#carla-g29","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 3bc36bd61614fc55a541b78a49ae1c0a17bf1400..27599a9783f26300584f6374ca3150eed5ceb798 100755 GIT binary patch delta 13 Ucmb=gXP58h;9yAoF_FCj02^ckEdT%j delta 13 Ucmb=gXP58h;Ajy3K9Riw035~yS^xk5 diff --git a/todo/index.html b/todo/index.html index 4f0810793..5f1e230b9 100755 --- a/todo/index.html +++ b/todo/index.html @@ -359,6 +359,7 @@

艺术改进

虚幻引擎