Carla交通管理器

2023-11-29 02:20
文章标签 carla 交通管理

本文主要是介绍Carla交通管理器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概念

Traffic Manager(TM)是在模拟中以自动驾驶模式控制车辆的模块。它的目标是用真实的城市交通条件填充模拟。用户可以自定义一些行为,例如,设置特定的学习环境。

交通管理器的运行逻辑大致为:

  • 存储和更新当前模拟世界中的状态

Agent Lifecycle & State Management (ALSM):从Carla中获取车辆及行人信息,并保持更新。

vehicle registry:管理Carla中车辆和行人的信息,包括由交通管理器控制的自动驾驶车辆和不受交通管理器控制的车辆(行人)组成。

simulation state:存储Carla中所有车辆和行人的位置,速度以及附加信息

计算每辆自动驾驶汽车的运动

  • 计算每辆自动驾驶汽车的运动

 由定位,碰撞检测,交通信号灯检测,运动规划,车辆灯光状态变化五个阶段组成

  • 在一个时间步中批量设置车辆的状态

 使用

在Carla中,由交通管理器控制的车辆会产生以下行为:

  1. 自动驾驶模式的车辆没有特定的目的地,运动路线是动态随机生成的。车辆在到达目的地之后会随机选择下一个目的地。
  2. 车辆默认的速度为当前限速的70% 。
  3. 在路口处,车辆不遵循交通规则。例如,出环岛的车辆会给准备进入环岛的车辆让路。

可以通过Python API调整TM行为。有关特定方法,请参见Python API文档的TM部分。以下是通过API可以实现的功能的一般总结:

Topic话题Description描述
General:
概述:
- 创建一个连接到端口的TM实例。
- 检查TM连接的端口。
Safety conditions:
安全条件:
- 设置停止车辆之间的最小距离(对于单个车辆或所有车辆)。这将影响最小移动距离。
- 将所需速度设置为当前速度限制的百分比(适用于单个车辆或所有车辆)。
- 重置交通灯
Collision managing:
冲突管理:
- 启用/禁用车辆与特定参与者之间的碰撞。
- 让一辆车忽略所有其他车辆。
- 让一辆车忽略所有的步行者。
- 让车辆无视所有交通灯。
Lane changes:
车道变更:
-- 强制变道,忽略可能的碰撞。
- 启用/禁用车辆的车道变更。
Hybrid physics mode:
混合物理模式:

- 启用/禁用混合物理模式。
- 更改启用物理的半径。

创建Traffic Manager

TM实例由carla.Client创建,传递要使用的端口。默认端口为8000

tm = client.get_trafficmanager(port) 

注册车辆 

要为一组车辆启用自动驾驶,请检索TM实例的端口并将set_autopilot设置为True,同时通过TM端口。如果没有提供端口,它将尝试连接到默认端口(8000)中的TM。如果TM不存在,它将创建一个:

tm_port = tm.get_port()for v in vehicles_list:v.set_autopilot(True,tm_port)

generate_traffic.py中的/PythonAPI/examples脚本提供了一个示例,说明如何使用作为脚本参数传递的端口创建一个TM实例,并通过将自动驾驶仪批量设置为True来注册每辆衍生到它的车辆:

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)

配置自动驾驶行为

为特定车辆配置了危险行为,因此它将忽略所有交通信号灯,与其他车辆没有安全距离,并以比当前速度限制快20%的速度行驶:

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)

下面的示例将相同的车辆列表设置为自动驾驶,但将其配置为中等驾驶行为。车辆行驶速度比现行限速慢80%,与其他车辆之间至少留有5米距离,从不进行变道:

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)

委托Traffic Manager自动更新车灯

默认情况下,车灯(刹车、转向指示灯等)由TM管理的车辆从未更新。可以委托TM更新给定车辆施动者的车灯:

tm = client.get_trafficmanager(port)
for actor in my_vehicles:tm.update_vehicle_lights(actor, True)

停止Traffic Manager

client.apply_batch([carla.command.DestroyActor(x) for x in vehicles_list])

同步模式

TM被设计为在同步模式下工作。CARLA服务器和TM都应设置为同步,以便正常工作。在异步模式下使用TM可能会导致意外和不希望的结果,但是,如果需要异步模式,则仿真至少应以20-30 fps运行。


# 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)

Deterministic mode

在确定性模式下,TM将在相同的条件下产生相同的结果和行为。不要把决定论误认为是记录器。虽然记录器允许您存储模拟的日志以进行回放,但确定性确保只要保持相同的条件,TM在脚本的不同执行中始终具有相同的输出。

确定性模式仅在同步模式下可用。在异步模式下,对模拟的控制较少,无法实现确定性。

要启用确定性模式,请使用以下方法:

my_tm.set_random_device_seed(seed_value)

seed_value是将从中生成随机数的int数。值本身并不相关,但相同的值将始终导致相同的输出。具有相同条件并使用相同种子值的两个模拟将是确定性的。

要在多个模拟运行中保持确定性,必须为每个模拟设置种子。例如,每次重新加载世界时,必须再次设置种子:

client.reload_world()
my_tm.set_random_device_seed(seed_value)

Hybrid physics mode

混合模式允许用户禁用所有自动驾驶车辆的大多数物理计算,或者禁用标记为hero的车辆的特定半径之外的自动驾驶车辆。这消除了模拟中的车辆物理瓶颈。物理学失效的载具将通过远距传送移动。保持线性加速度的基本计算,以确保位置更新和车辆速度保持现实,并在车辆上切换物理计算。

混合模式使用Actor.set_simulate_physics()方法切换物理计算。默认情况下,该选项处于禁用状态。有两个选项可以启用它:

TrafficManager.set_hybrid_physics_mode(True)-此方法为调用它的TM对象启用混合模式。

要修改混合模式的行为,请使用以下两个参数:

半径(默认值= 50米)-半径相对于标记为hero的车辆。所有在此半径内的车辆将启用物理;半径外的车辆将禁用物理。使用​traffic_manager.set_hybrid_physics_radius(r)修改半径的大小。

Hero vehicle英雄车 — A vehicle tagged with - 一辆车贴着 role_name='hero' that acts as the center of the radius. 作为半径的中心。

  • If there is no hero vehicle, all vehicles' physics will be disabled.
    如果没有英雄载具,所有载具的物理特性将被禁用。
  • If there is more than one hero vehicle, the radius will be considered for them all, creating different areas of influence with physics enabled.
    如果有多个英雄载具,则会考虑所有载具的半径,并在启用物理的情况下创建不同的影响范围

这篇关于Carla交通管理器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431092

相关文章

Carla自动驾驶仿真十:Carlaviz三维可视化平台搭建

文章目录 前言一、环境准备1、docker安装2、websocket-client安装3、carlaviz代码下载 二、carlaviz使用1、打开carla客户端2、输入启动命令3、进入carlaviz4、修改manual_control.py脚本5、运行manual_control.py脚本6、运行carlaviz官方脚本(推荐) 前言 Carlaviz是一个开源的

交通管理灯总结

/* 1,定义 road 类  road中存有 车辆 的集合(ArrayList),来操作车辆。  每条路有 自己的名字 属性,private name;  road 在指定的时间范围,会产生 车辆。  通过 Executors类,产生一个线程池,去执行产生车辆的任务。  ExecutorService pool=Executors.newSingleThreadExecutor();

基于RK3568核心板的雷视融合一体机,助力交通管理智能化升级

随着5G网络与智慧交通车路协同系统在全国各点的落地,作为提升交通安全的前沿技术方案也愈发受到重视。 在交通信控领域,以往的感知技术、无论是地磁、线圈还是摄像头,功能都仅仅局限于数清经过了多少车辆,无法满足交通数字化管理对精细化、智能化管控的需求。 雷视融合一体机具备全天候和长距离的检测属性,除了统计车流量外,还可监测、跟踪车辆的运动行为特征,锁定车辆信息。同时,雷视融合一体机结合超远感知,

CARLA (I)--Ubuntu20.04 服务器安装 CARLA_0.9.13服务端和客户端详细步骤

目录 0. 说明0.1 应用场景:0.2 本文动机: 1. 准备工作2. 安装 CARLA 服务端软件【远程服务器】3. 安装 CARLA 客户端【远程服务器】3.1 .egg 文件安装:3.2 .whl 文件安装:3.3 从Pypi下载Python package 4. 运行服务端程序5. 运行客户端程序【远程服务器】6. 另外一种应用模式:服务端程序【远程服务器】<--->客户端程序【本

独家 | 陆化普:大数据、AI解决交通管理难题的新思路

[导读] 2017年8月24日,以助推“平安交通、和谐交通、便民交通”为导向的研讨会在贵州省公安厅交通管理局成功举办。在会上,清华大学清华-青岛数据科学研究院(以下简称:数据院)、交通研究所和贵州省公安厅交通管理局的达成合作共识,共同挖掘贵州省交通大数据的价值,产生一批落地的科研成果,并应用到交通管理局实际的交通管理工作中。 数据院一直秉承开放包容的理念,积极推进大数据与各领域的跨界交流。

【避坑/个人总结】CARLA仿真遇到问题总结1

问题描述 执行以下命令时:   ./CarlaUE4.sh// 以及ros2 launch carla_shenlan_bridge_ego_vis carla_bridge_ego_vehilce.launch.py 出现以下的问题: 解决方法: 更新numpy库到1.23的版本

Ubuntu 安装 Carla仿真环境

1、系统要求 Ubuntu 16.04/18.04/20.04 CARLA 为 16.04 之前的 Ubuntu 版本提供支持。然而,Unreal Engine需要合适的编译器才能正常工作。 CARLA 服务器至少需要 6 GB GPU,但建议使用 8 GB。 2、安装NIVDIA驱动 BISO设置   开机F12,进入BIOS。   设置安全启动为关闭 disable模式 英伟达官

【道路交通管理与控制】第九章——城市智能交通管理与控制概论

文章目录 一、概述二、路线导行系统三、交通信息服务系统(ATIS)四、先进的城市公共交通系统(APTS)五、交通拥挤收费系统六、停车诱导系统(PGIS)七、地理信息和车辆定位系统(AVL)的应用 一、概述 ITS (Intelligent Transportation System) 定义:智能交通系统有别于传统的交通治理、改善技术,它是国际上对运用当代高新科技(计算机、信息

springboot259交通管理在线服务系统的开发

交通管理在线服务系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装交通管理在线服务系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,交通管理在线服务系统的有效运用可以帮助管理人员准确快速地处理信息。 交通管理在线服务系统在对开发工

carla-ros跨机通信(ros、carla_ros_bridge安装,开发板通信)

carla-ros通信 一、ros、carla_ros_bridge安装 1.ros安装步骤 ros的版本选择要与ubnutu系统版本对应,建议使用ros2(通信更便捷) ROS与操作系统版本对应关系:ROS与操作系统版本对应关系_ros版本与ubuntu对应版本_万俟淋曦的博客-CSDN博客 (1)配置系统软件源 打开“软件和更新”,进入到“Ubuntu软件“页面,允许universe