Carla ROS Scenario Runner

The CARLA ROS Scenario Runner 包 是一个包装器,用于通过 ROS 使用 CARLA Scenario Runner 执行 OpenScenarios


在你开始之前

  • 按照 Scenario Runner 入门”教程 安装 Scenario Runner。
  • 安装 Python 模块 Pexpect:
sudo apt install python-pexpect

使用 ROS Scenario Runner

ROS Scenario Runner 最好在 rviz_carla_plugin 中使用。

笔记

目前不支持更改地图。每个场景都需要使用当前活动的地图。

此处 提供了一个示例场景。特别重要的是 ROS 控制器 的设置:

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

上面的代码示例显示了一个正在启动的 carla_ad_agent 实例。任何附加内容<Property>都应作为 ROS 参数附加(名称:=值)。


运行 ROS Scenario Runner

1. 运行 ROS Scenario Runner 包:

# 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. 运行场景:

# 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 应用程序接口

服务

服务 类型 描述
/scenario_runner/execute_scenario carla_ros_scenario_runner_types.ExecuteScenario 执行一个场景。如果当前正在运行另一个场景,它将停止。


发布

主题 类型 描述
/scenario_runner/status carla_ros_scenario_runner_types.CarlaScenarioRunnerStatus 场景运行器执行的当前状态(由 rviz_carla_plugin 使用)

控制器ros_vehicle_control提供以下主题:

主题 类型 描述
/carla/<ROLE NAME>/waypoints nav_msgs.Path 场景中定义的路径。注:可以通过修改参数path_topic_name来更改主题名称
/carla/<ROLE NAME>/target_speed std_msgs.Float64 场景中定义的目标速度