Skip to content

Commit

Permalink
行人生成
Browse files Browse the repository at this point in the history
  • Loading branch information
nongfugengxia committed Jun 17, 2024
1 parent 4498cb0 commit b26cfed
Show file tree
Hide file tree
Showing 19 changed files with 105 additions and 38 deletions.
2 changes: 1 addition & 1 deletion docs/adv_traffic_manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ for actor in my_vehicles:

### 停止交通管理器

TM 不是一个需要被摧毁的参与者;当创建它的客户端停止时,它将停止。这是由 API 自动管理的,用户无需执行任何操作。但是,在关闭 TM 时,用户必须摧毁由它控制的车辆,否则它们将在地图上保持不动。 `generate_traffic.py `脚本会自动执行此操作:
交通管理器是一个不需要被销毁的参与者;当创建它的客户端停止时,它将停止。这是由 API 自动管理的,用户无需执行任何操作。但是,在关闭交通管理器时,用户必须销毁由它控制的车辆,否则它们将在地图上保持不动。 `generate_traffic.py `脚本会自动执行此操作:

```py
client.apply_batch([carla.command.DestroyActor(x) for x in vehicles_list])
Expand Down
5 changes: 3 additions & 2 deletions docs/benchmark_creating.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
驾驶基准测试与其他两个模块相关联。代理模块是另一个模块(实验套件)中执行的控制器。这两个模块都是抽象类,必须由用户重新定义。

以下代码摘录是如何应用驾驶基准的示例;

```python
# 我们实例化了一个转发代理,这是一个简单的策略,
# 只需将加速度设置为0.9,将转向设置为零
Expand Down Expand Up @@ -89,7 +90,7 @@ def test_weathers(self):
```

## 构建实验
实验由一组姿势定义的任务组成。让我们从选择其中一个城市的姿势开始,以 Town01 为例。首先,我们需要查看所有可能的位置,为此,在终端中运行 CARLA 模拟器,运行:
实验由一组姿势定义的任务组成。让我们从选择其中一个城市的姿势开始,以 Town01 为例。首先,我们需要查看所有可能的位置,为此,在终端中运行 CARLA 模拟器,运行 [view_start_positions.py](https://github.com/OpenHUTB/Self_Driving_Car_Trajectory_Tracking/blob/main/PythonClient/view_start_positions.py)
```shell
python view_start_positions.py
```
Expand Down Expand Up @@ -156,7 +157,7 @@ experiments_vector = []
```


完整代码可以在 [basic_experiment_suite.py](https://github.com/carla-simulator/carla/blob/master/PythonClient/carla/driving_benchmark/experiment_suites/basic_experiment_suite.py) 找到。
完整代码可以在 [basic_experiment_suite.py](https://github.com/OpenHUTB/Self_Driving_Car_Trajectory_Tracking/blob/main/PythonClient/carla/driving_benchmark/experiment_suites/basic_experiment_suite.py) 找到。


## 预期结果
Expand Down
2 changes: 1 addition & 1 deletion docs/catalogue_vehicles.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ vehicle = world.spawn_actor(vehicle_bp, vehicle_trans)
spectator.set_transform(camera_trans)
```

在尝试生成另一辆车之前,不要忘记摧毁该车辆以避免碰撞
在尝试生成另一辆车之前,不要忘记销毁该车辆以避免碰撞

```py
vehicle.destroy()
Expand Down
10 changes: 5 additions & 5 deletions docs/core_actors.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

Carla 中的参与者是在仿真中执行动作的元素,他们可以影响其他参与者。Carla 的参与者包括车辆和步行者,也包括传感器、交通标志、红绿灯和观看者。对如何操作它们有充分的了解是至关重要的。

本节将介绍生成、摧毁、类型以及如何管理它们。然而,可能性几乎是无穷无尽的。实验、查看本文档中的 __教程__,并在 [Carla 论坛](https://github.com/carla-simulator/carla/discussions/) 中分享疑虑和想法。
本节将介绍生成、销毁、类型以及如何管理它们。然而,可能性几乎是无穷无尽的。实验、查看本文档中的 __教程__,并在 [Carla 论坛](https://github.com/carla-simulator/carla/discussions/) 中分享疑虑和想法。

- [__蓝图__](#blueprints)
- [管理蓝图库](#managing-the-blueprint-library)
- [__参与者生命周期__](#actor-life-cycle)
- [生成](#spawning)
- [处理](#handling)
- [摧毁](#destruction)
- [销毁](#destruction)
- [__参与者类型__](#types-of-actors)
- [传感器](#sensors)
- [观察者](#spectator)
Expand Down Expand Up @@ -140,9 +140,9 @@ actor.set_simulate_physics(False)
大多数方法是异步向仿真器发送请求。仿真器每次更新解析它们的时间有限。使用 _set()_ 方法淹没仿真器将积累明显的延迟。


### 摧毁
### 销毁

当 Python 脚本完成时,参与者不会被销毁。他们必须明确地摧毁自己
当 Python 脚本完成时,不回销毁参与者。他们必须明确地销毁自己

```py
destroyed_sucessfully = actor.destroy() # 如果成功返回 True
Expand Down Expand Up @@ -298,7 +298,7 @@ ai_controller.stop()
[carla.Client](python_api.md#carla.Client.apply_batch_sync) 中的一个片段使用批次生成大量步行者并让它们四处游荡。

!!! 重要
__要摧毁人工智能行人__,请停止人工智能控制器并摧毁参与者和控制器
__要销毁人工智能行人__,请停止人工智能控制器并销毁参与者和控制器

---
关于 Carla 中的参与者,这就是一个总结。下一步将仔细研究 Carla 的地图、道路和交通。
Expand Down
4 changes: 2 additions & 2 deletions docs/core_world.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ client.set_timeout(10.0) # 秒
world = client.get_world()
```

客户端还可以获得可用地图列表来更改当前地图。这将摧毁当前的世界并创造一个新的世界
客户端还可以获得可用地图列表来更改当前地图。这将销毁当前的世界并创造一个新的世界
```py
print(client.get_available_maps())
...
Expand Down Expand Up @@ -101,7 +101,7 @@ Python API 参考的 [最新部分](python_api.md#command.ApplyAngularVelocity)

世界上有不同的与参与者相关的方法,允许不同的功能。

* 生成参与者(但不摧毁他们)。
* 生成参与者(但不销毁他们)。
* 获得场景中的每一位参与者,或者找到一个特定的参与者
* 访问蓝图库。
* 访问观察参与者、仿真的视角。
Expand Down
5 changes: 5 additions & 0 deletions docs/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ python examples/manual_control.py --host localhost --port 2000 --rolename hero -
```
![](img/interactive_script/manual_control.png)

手动控制行人:
```shell
python examples/manual_control.py --filter walker.pedestrian.*
```

### [绘制边界框](https://github.com/OpenHUTB/carla_doc/blob/master/src/examples/sensor_bounding_box.py)
脚本将根据用户指定的视角 `view`(上方`above`、后面`behind`)附加一个 RGB 相机,并在距离`distance`之内绘制所有的参与者。
```shell
Expand Down
4 changes: 2 additions & 2 deletions docs/foundations.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ client.start_recorder('recording.log')

### 世界

__世界__ 是代表仿真的对象。它充当一个抽象层,包含生成参与者、改变天气、获取世界当前状态等的主要方法。每个仿真只有一个世界。当地图改变时,它会被摧毁并替换为新的
__世界__ 是代表仿真的对象。它充当一个抽象层,包含生成参与者、改变天气、获取世界当前状态等的主要方法。每个仿真只有一个世界。当地图改变时,它会被销毁并替换为新的

使用客户端对象检索世界对象:

Expand Down Expand Up @@ -188,7 +188,7 @@ world.on_tick(lambda world_snapshot: do_something(world_snapshot))

记录器文件包括有关许多不同元素的信息。

* __参与者__创造和摧毁、边界和触发盒。
* __参与者__创造和销毁、边界和触发盒。
* __交通等__ — 状态变化和时间设置。
* __车辆__ — 位置和方向、线速度和角速度、光状态和物理控制。
* __行人__ — 位置和方向,以及线速度和角速度。
Expand Down
Binary file modified docs/img/Carla.pptx
Binary file not shown.
16 changes: 8 additions & 8 deletions docs/python_api.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Python API 参考
# [Python API 参考](https://carla.readthedocs.io/en/latest/python_api/)
此参考包含 Python API 的所有详细信息。要查阅特定 Carla 版本的先前参考,请使用右下角的面板更改文档版本。<br>这会将整个文档更改为之前的状态。请记住, <i>最新</i> 版本是 `dev` 分支,可能会显示任何 Carla 打包版本中不可用的功能。<hr>

## carla.AckermannControllerSettings<a name="carla.AckermannControllerSettings"></a>
Expand Down Expand Up @@ -487,12 +487,12 @@ Creates a new world with default settings using `map_name` map. All actors in th
- **警告:** <font color="#ED2F2F">_`map_layers` 仅对"Opt"地图可用。
_</font>
- <a name="carla.Client.reload_world"></a>**<font color="#7fb800">reload_world</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**reset_settings**=True</font>)
重新加载当前世界,请注意,将使用同一地图使用默认设置创建一个新世界。世界上所有参与者都将被摧毁____ 交通管理器实例将继续存在。
重新加载当前世界,请注意,将使用同一地图使用默认设置创建一个新世界。世界上所有参与者都将被销毁____ 交通管理器实例将继续存在。
- **参数:**
- `reset_settings` (_bool_) - 选项可将情节设置重置为默认值,设置为false可保留当前设置。这对于在更改映射时保持同步模式和保持确定性场景非常有用。
- **Raises:** 对应的运行时错误 RuntimeError。
- <a name="carla.Client.replay_file"></a>**<font color="#7fb800">replay_file</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**name**</font>, <font color="#00a6ed">**start**</font>, <font color="#00a6ed">**duration**</font>, <font color="#00a6ed">**follow_id**</font>, <font color="#00a6ed">**replay_sensors**</font>)
使用`map_name`加载具有默认设置的新世界。当前世界中的所有参与者都将被摧毁____ 交通管理器实例将继续存在。
使用`map_name`加载具有默认设置的新世界。当前世界中的所有参与者都将被销毁____ 交通管理器实例将继续存在。
- **参数:**
- `name` (_str_) - 包含仿真信息的文件的名称。
- `start` (_float<small> - seconds</small>_) - 开始播放仿真的时间。负数表示从结尾开始读取,在录制结束前10秒为-10。
Expand Down Expand Up @@ -2605,7 +2605,7 @@ _</font>
- **参数:**
- `r` (_float<small> - 米</small>_) - 启用物理的新半径。
- <a name="carla.TrafficManager.set_osm_mode"></a>**<font color="#7fb800">set_osm_mode</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**mode_switch**=True</font>)
启用或禁用 OSM 模式。该模式允许用户在使用 [OSM 功能](tuto_G_openstreetmap.md) 创建的地图中运行 TM。这些地图允许有死胡同。通常,如果车辆无法找到下一个航路点,交通管理器就会崩溃。如果启用 OSM 模式,它将显示警告,并在必要时摧毁车辆
启用或禁用 OSM 模式。该模式允许用户在使用 [OSM 功能](tuto_G_openstreetmap.md) 创建的地图中运行 TM。这些地图允许有死胡同。通常,如果车辆无法找到下一个航路点,交通管理器就会崩溃。如果启用 OSM 模式,它将显示警告,并在必要时销毁车辆
- **参数:**
- `mode_switch` (_bool_) - 如果 __True__ ,则启用 OSM 模式。
- <a name="carla.TrafficManager.set_path"></a>**<font color="#7fb800">set_path</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**actor**</font>, <font color="#00a6ed">**path**</font>)
Expand Down Expand Up @@ -3167,7 +3167,7 @@ VehiclePhysicsControl 构造函数。

## carla.Walker<a name="carla.Walker"></a>
<small style="display:block;margin-top:-20px;">从 _[carla.Actor](#carla.Actor)_ 继承</small></br>
该类从 [carla.Actor](#carla.Actor) 继承并定义仿真中的行人。Walkers 是一种特殊类型的 actor,可以由 AI ([carla.WalkerAIController](#carla.WalkerAIController)) 控制,也可以通过脚本手动控制,使用一系列 [carla.WalkerControl](#carla.WalkerControl) 来移动它们及其骨骼。
该类从 [carla.Actor](#carla.Actor) 继承并定义仿真中的行人。Walkers 是一种特殊类型的参与者,可以由 AI ([carla.WalkerAIController](#carla.WalkerAIController)) 控制,也可以通过脚本手动控制,使用一系列 [carla.WalkerControl](#carla.WalkerControl) 来移动它们及其骨骼。

### 方法
- <a name="carla.Walker.apply_control"></a>**<font color="#7fb800">apply_control</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**control**</font>)
Expand All @@ -3192,7 +3192,7 @@ VehiclePhysicsControl 构造函数。
- name: 骨骼名称
- world: 世界坐标变换
- component: 基于参与者的枢轴进行变换
- relative: 基于骨骼父级进行变换
- relative: 基于父级骨骼进行变换
- **返回:** _[carla.WalkerBoneControlOut](#carla.WalkerBoneControlOut)_
- **Setter:** _[carla.Walker.set_bones](#carla.Walker.set_bones)_
- <a name="carla.Walker.get_control"></a>**<font color="#7fb800">get_control</font>**(<font color="#00a6ed">**self**</font>)
Expand Down Expand Up @@ -3967,7 +3967,7 @@ Actor affected by the command.
---

## command.ApplyVehicleControl<a name="command.ApplyVehicleControl"></a>
in [carla.Vehicle](#carla.Vehicle)__<font color="#7fb800">apply_control()</font>__ 的命令适应。对车辆应用某个控制
[carla.Vehicle](#carla.Vehicle)__<font color="#7fb800">apply_control()</font>__ 命令进行适应,实现对车辆应用某个控制

### 实例变量
- <a name="command.ApplyVehicleControl.actor_id"></a>**<font color="#f8805a">actor_id</font>** (_int_)
Expand Down Expand Up @@ -4038,7 +4038,7 @@ in [carla.Vehicle](#carla.Vehicle) 中 __<font color="#7fb800">apply_control()</
---

## command.DestroyActor<a name="command.DestroyActor"></a>
[carla.Actor](#carla.Actor)__<font color="#7fb800">destroy()</font>__ 命令的改编版,将告诉仿真器摧毁该参与者。如果参与者已经被摧毁则没有影响。当在 [carla.Client](#carla.Client) 中执行 __<font color="#7fb800">apply_batch_sync()</font>__ 将会返回一个布尔值状态表示参与者是否被成功摧毁
[carla.Actor](#carla.Actor)__<font color="#7fb800">destroy()</font>__ 命令的改编版,将告诉仿真器销毁该参与者。如果参与者已经被销毁则没有影响。当在 [carla.Client](#carla.Client) 中执行 __<font color="#7fb800">apply_batch_sync()</font>__ 将会返回一个布尔值状态表示参与者是否被成功销毁

### 实例变量
- <a name="command.DestroyActor.actor_id"></a>**<font color="#f8805a">actor_id</font>** (_int_)
Expand Down
2 changes: 1 addition & 1 deletion docs/ref_recorder_binary_file_format.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,4 +185,4 @@

![layout](img/RecorderLayoutSample.jpg)

**第 1 帧**中,创建了一些参与者并重新设置了父级,因此我们可以在图像中观察其事件。在**第 2 帧**中没有事件。在**第 3 帧**中,一些参与者发生了碰撞,因此碰撞事件会随该信息一起出现。在**第 4 帧**中,参与者被摧毁
**第 1 帧**中,创建了一些参与者并重新设置了父级,因此我们可以在图像中观察其事件。在**第 2 帧**中没有事件。在**第 3 帧**中,一些参与者发生了碰撞,因此碰撞事件会随该信息一起出现。在**第 4 帧**中,参与者被销毁
2 changes: 1 addition & 1 deletion docs/run_ros.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ __2.__ 在另一个终端中,发布到主题 `/carla/<ROLE NAME>/vehicle_contr

| 主题 | 类型 | 描述 |
|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------|
| `/carla/destroy_object` | [carla_msgs/DestroyObject.srv](https://github.com/carla-simulator/ros-carla-msgs/blob/f75637ce83a0b4e8fbd9818980c9b11570ff477c/srv/DestroyObject.srv) | 摧毁一个物体 |
| `/carla/destroy_object` | [carla_msgs/DestroyObject.srv](https://github.com/carla-simulator/ros-carla-msgs/blob/f75637ce83a0b4e8fbd9818980c9b11570ff477c/srv/DestroyObject.srv) | 销毁一个物体 |
| `/carla/get_blueprints` | [carla_msgs/GetBlueprints.srv](https://github.com/carla-simulator/ros-carla-msgs/blob/f75637ce83a0b4e8fbd9818980c9b11570ff477c/srv/GetBlueprints.srv) | 获取蓝图 |
| `/carla/spawn_object` | [carla_msgs/SpawnObject.srv](https://github.com/carla-simulator/ros-carla-msgs/blob/f75637ce83a0b4e8fbd9818980c9b11570ff477c/srv/SpawnObject.srv) | 生成一个对象 |

Expand Down
28 changes: 23 additions & 5 deletions docs/todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,34 @@

## 学术研究
### [感知](algorithms/perception.md)
目标跟踪、再识别、语义分割、骨架识别等。
车辆/行人:
检测、跟踪、再识别、语义分割、行为建模、对抗训练、多模态融合、惯视融合等。

行人:
过马路和不过马路分类、姿态自编码(增加所提取骨架的质量)、姿态估计、姿态抬升;运动重定向、风格迁移;

### [规划](algorithms/planning.md)
[定位](algorithms/localization.md) 、惯视融合、建图、规划、决策。
建图、[定位](algorithms/localization.md) 、规划、决策。

决策的伦理和公平。

### [控制](algorithms/control.md)
PID、基于模型的控制。

通过 `carla.Walker.set_bones()` 对行人骨骼进行变换。

### 场景
* 智能体[智能驾驶](https://openhutb.github.io/carla_doc/ecosys_iss/) 、机器人、无人机等
* 代理[智能驾驶](https://openhutb.github.io/carla_doc/ecosys_iss/)

* 提供数据孪生建筑生成的 Python 接口。

### 代理
* 虚拟人预测驾驶行为的神经激活结构

驾驶、行走、站立、跑步;

## 艺术改进

## 艺术增强
* 场景的自动化建模(删除):道路、[建筑](https://github.com/chenzhaiyu/footprint-detection) 等;
* 资产:道路、建筑、[行人](https://github.com/EpicGames/MetaHuman-DNA-Calibration) 、车辆、树木等;
* [体积雾、雪、脏](https://bitbucket.org/carla-simulator/carla-content/pull-requests/382) 的支持;
Expand All @@ -39,10 +51,16 @@ PID、基于模型的控制。
https://bitbucket.org/carla-simulator/carla-content Unreal/CarlaUE4/Content/Carla
```

参考[行人构建流程](https://ww2.mathworks.cn/help/roadrunner-scenario/ug/import-custom-character-meshes.html)
* [中电软件园](https://overpass-api.de/api/map?bbox=112.8671,28.2281,112.8873,28.2412)

新安装apkpure,再安装RealityScan

### 行人
参考[行人构建流程](https://ww2.mathworks.cn/help/roadrunner-scenario/ug/import-custom-character-meshes.html)

* 未定位功能:跑步;未实现功能:交谈、叫出租车、坐下。



### 虚幻引擎
* 引擎优化:[文档](https://github.com/OpenHUTB/engine_doc) 本地化整理。
Expand Down
Loading

0 comments on commit b26cfed

Please sign in to comment.