Carla 自动驾驶代理

Carla 自动驾驶代理 是一种自动驾驶代理,可以遵循给定路线,避免与其他车辆发生碰撞,并通过访问真实数据尊重交通信号灯的状态。Carla 自动驾驶演示 使用它来提供如何使用 ROS 桥的示例。

在内部,Carla 自动驾驶代理使用单独的节点进行 本地规划 。该节点已针对 vehicle.tesla.model3 进行了优化,因为它没有任何换档延迟。

PID 参数通过 Ziegler-Nichols方法 采集。


需求

为了能够使用 carla_ad_agent,需要生成最少的传感器集(有关如何生成传感器的信息,请参阅 Carla 生成对象

  • 里程计伪传感器 (sensor.pseudo.odom),其参与者名odometry附加到车辆上。
  • 一个对象伪传感器 (sensor.pseudo.objects),其参与者名objects附加到车辆上。
  • 具有参与者名称 traffic_lights 的交通灯伪传感器 (sensor.pseudo.traffic_lights) 。

ROS 应用程序接口

自动驾驶代理节点

参数

参数 类型 描述
role_name string (默认:ego_vehicle) 自我车辆的 Carla 参与者名称
avoid_risk bool (default: true) 如果为真,则避免与其他车辆相撞并尊重交通信号灯


订阅

主题 类型 描述
/carla/<ROLE NAME>/target_speed std_msgs/Float64 自我车辆的目标速度
/carla/<ROLE NAME>/odometry nav_msgs/Odometry 自我车辆的里程计
/carla/<ROLE NAME>/vehicle_info carla_msgs/CarlaEgoVehicleInfo 识别自我车辆的 Carla 参与者 id
/carla/<ROLE NAME>/objects derived_object_msgs/ObjectArray 其他参与者的信息
/carla/traffic_lights/status carla_msgs/CarlaTrafficLightStatusList 获取交通信号灯的当前状态
/carla/traffic_lights/info carla_msgs/CarlaTrafficLightInfoList 获取有关交通灯的信息


发布

主题 类型 描述
/carla/<ROLE NAME>/speed_command std_msgs/Float64 目标速度


本地规划器节点

参数

参数 类型 描述
role_name string (默认值:ego_vehicle) 自我车辆的 Carla 参与者名称
control_time_step float (默认值:0.05) 控制循环速率
Kp_lateral float (默认值: 0.9) 比例项横向PID控制器
Ki_lateral float (默认值: 0.0) 积分项横向PID控制器
Kd_lateral float (默认值: 0.0) 微分项横向PID控制器
Kp_longitudinal float (默认值: 0.206) 比例项纵向PID控制器
Ki_longitudinal float (默认值: 0.0206) 积分项纵向PID控制器
Kd_longitudinal float (默认值: 0.515) 微分项纵向PID控制器


订阅

主题 类型 描述
/carla/<ROLE NAME>/waypoints nav_msgs/Path 遵循的路线
/carla/<ROLE NAME>/odometry nav_msgs/Odometry 自我车辆的里程计
/carla/<ROLE NAME>/speed_command std_msgs/Float64 目标速度


发布

主题 类型 描述
/carla/<ROLE NAME>/next_target visualization_msgs/Marker 下一个目标姿势标记
/carla/<ROLE NAME>/vehicle_control_cmd carla_msgs/CarlaEgoVehicleControl 车辆控制指令