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 |
场景中定义的目标速度 |