概述
本演示旨在解释运行以下感知节点的一般过程。 Autoware.Auto 3D 感知堆栈由一组计算和发布对象边界框所必需的节点组成。 这样做的最小堆栈是:
- point_cloud_filter_transform_node :将输出转换 velodyne_node 为公共帧。 文档可以在这里找到: point_cloud_filter_transform_nodes 。
- ray_ground_classifier_node :对激光雷达点进行分类以指示它们属于地面还是非地面。 文档可以在这里找到: ray_ground_classifier 。
- euclidean_cluster_node :将非地面点聚类到对象检测中。 文档可以在这里找到: euclidean_cluster 。
还有一些可选节点,本教程未介绍,可用于扩充堆栈:
- point_cloud_fusion :将来自多个源的点云融合到一条消息中。 这目前用于将前后激光雷达数据融合到单个消息流中。 本教程仅使用前激光雷达数据。 可以在此处找到文档: point_cloud_fusion_nodes 。
- voxel_grid_nodes :这可用于通过体素网格表示对点云数据进行下采样。 本教程不执行下采样。 文档可以在这里找到: voxel_grid_filter 。
启动感知节点
先决条件
此演示假定指令在 ADE 环境中运行。 有关安装的更多信息,请参阅 安装 ADE 。 根据选择生成数据的模式, .aderc 可能需要使用不同的文件以确保配置了正确的环境。
生成传感器数据
要运行感知堆栈,需要生成传感器数据并将其与相应的“机器人状态”一起发布,该“机器人状态”用于确定传感器相对于车辆的位置。 本节介绍了实现此目的的三种不同方法:
运行仿真器
1.使用 LGSVL 配置输入 ADE:
$ ade --rc .aderc-lgsvl 开始 --update --enter |
2.请参阅 Autoware.Auto 旁边的运行 SVL 仿真器
3.发布机器人状态描述:
$ ade 输入 ade$ ros2 运行 robot_state_publisher robot_state_publisher /opt/AutowareAuto/share/lexus_rx_450h_description /urdf/lexus_rx_450h.urdf |
重放传感器数据
1.下载 PCAP 文件 Dual VLP-16 Hi-Res pcap 文件 。
2.使用带有额外标志的默认脚本输入 ADE 以正确运行 RViz
$ ade --rc .aderc 开始 --update --enter |
3.将下载的文件移动到您的 adehome 文件夹中。
4.使用以下命令重播文件 udpreplay :
$ ade 输入
ade$ udpreplay -r -1 route_small_loop_rw.pcap |
5.启动前激光雷达的 velodyne_node :
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 velodyne_nodes velodyne_cloud_node_exe --ros-args -p model:=vlp16 --remap __ns:=/lidar_front --params-file /opt/AutowareAuto/share/velodyne_nodes/param/vlp16_test.param.yaml |
6.启动后激光雷达的 velodyne_node :
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 velodyne_nodes velodyne_cloud_node_exe --ros-args -p model:=vlp16 --remap __ns:=/lidar_rear --params-file /opt/AutowareAuto/share/velodyne_nodes/param/vlp16_test_rear.param.yaml |
7.发布机器人状态描述:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 robot_state_publisher robot_state_publisher /opt /AutowareAuto/share/lexus_rx_450h_description /urdf/lexus_rx_450h_pcap.urdf |
连接到物理传感器
1.使用带有额外标志的默认脚本输入 ADE 以正确运行 RViz
$ ade --rc .aderc 开始 --update --enter -- --net=host --privileged |
2.为此,请更新 velodyne_node 参数文件中的 IP 地址和端口参数,然后启动该节点:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 velodyne_nodes velodyne_ cloud_node_exe --ros-args -p model:=vlp16 --remap __ns:=/lidar_front --params-file /opt/AutowareAuto/share/velodyne_nodes/param/ vlp16_test.param.yaml |
启动可视化
rviz2 可用于在发布时可视化感知数据。 要启动可视化工具,请打开一个新终端,然后:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ rviz2 -d /opt/AutowareAuto/share/autoware_auto _examples/rviz2/autoware_perception_stack.rviz |
rviz 配置显示了本教程中的所有主题。 当节点启动时,它们将显示在 rviz 中。 可以选中和取消选中主题名称旁边的复选框以切换可视化的感知输出。
启动感知节点
1.启动 point_cloud_filter_transform_node 节点。 该节点将点云从 转换 velodyne_node 为公共框架。 在新终端中,执行:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 run point_cloud_filter_transform_nodes point_cloud _ filter_transform_node_exe --ros-args --remap __ns:=/lidar_front --params-file /opt/AutowareAuto/share/point_cloud_filter_transform _ nodes/param/vlp16_sim_lexus_filter_transform.param.yaml --remap __node:=filter_transform_vlp16_front --remap points_in:= / lidar_front/points_xyzi |
Autoware.Auto 转换点快照
2.启动 ray_ground_classifier_node 节点。 该节点根据点云点是地面还是非地面对点云点进行分类。 在新终端中,执行:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 run point_cloud_filter_transform_nodes point_cloud_filter_transform_node_exe --ros-args --remap __ns:=/lidar_front --params-file /opt/AutowareAuto/share/point_cloud_filter_ transform_nodes/param/vlp16_sim_lexus_filter_t ransform.param.yaml --remap __node:=filter_transform_vlp16_front --remap points_in := /lidar_front/points_xyzi |
Autoware.Auto 光线地面滤镜快照
3.启动 euclidean_cluster_node 节点。 该节点将非地面点聚集到对象中,并可选择发布边界框或凸多边形棱镜。 对于发布边界框,在新终端中,执行:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 euclidean_cluster_nodes euclidean_ cluster_node_exe --ros-args --params-file /opt/AutowareAuto/share/euclidean_cluster_nodes/ param /vlp16_lexus_cluster.param.yaml --remap points_in:=/points_nonground |
Autoware.Auto边界框分割快照
或者,从欧几里得聚类算法中发布凸多边形棱镜。 在新终端中,执行:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 euclidean_cluster_nodes euclidean _ cluster_node_exe --ros-args --params-file /opt/AutowareAuto/share/euclidean_cluster_nodes / param/vlp16_lexus_cluster_as_polygon.param.yaml --remap points_in:=/points_nonground |
Autoware.Auto凸多边形棱镜分割快照
便捷启动文件
为了简化启动这些节点的过程,存在一个方便的启动文件,它可以 robot_state_publisher 使用单个命令启动感知堆栈的其余部分。 要启动感知堆栈,请使用以下启动文件:
PCAP 传感器数据
笔记
如果您没有 PCAP 文件的副本,请参阅上述步骤以重放传感器数据。
1.使用以下命令重播文件 udpreplay :
$ ade 输入
ade$ udpreplay -r -1 route_small_loop_rw.pcap |
2.在另一个终端中 启动前激光雷达的 velodyne_node :
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 velodyne_nodes velodyne_cloud_node_exe --ros-args -p model:=vlp16 --remap __ns:=/lidar_front --params-file /opt/AutowareAuto/share/velodyne_nodes/param/ vlp16_test.param.yaml |
3.在另一个终端中 启动后激光雷达的 velodyne_node :
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 velodyne_nodes velodyne_cloud_node_exe --ros-args -p model:=vlp16 --remap __ns:=/lidar_rear --params-file /opt/AutowareAuto/share/velodyne_nodes/param/ vlp16_test_rear.param.yaml |
4.输入 ADE 并运行启动文件
发布凸多边形棱柱来描述物体的空间位置。
进入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动 autoware_demos 激光雷达 _多边形_棱镜_pcap.launch.py |
或者,发布用于描述对象空间位置的边界框。
进入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动 autoware_demos 激光雷达_ bounding_boxes_pcap.launch.py |
SVL 仿真器
笔记 如果 SVL 仿真器已经在运行,请跳过步骤 1。
1.请参阅 Autoware.Auto 旁边的运行 SVL 仿真器
2.输入 ADE 并运行启动文件
3.发布凸多边形棱柱来描述物体的空间位置。
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动 autoware_demos 激光雷达_多边形_棱镜_lgsvl.launch.py |
或者,发布用于描述对象空间位置的边界框。
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动 autoware_demos 激光雷达_bounding_boxes_lgsvl.launch.py |
|