(STVL) 使用外部代价地图插件
概述
本教程演示如何加载和使用外部插件。此示例使用 Spatio Temporal Voxel Layer (STVL) costmap pluginlib 插件为例。STVL是指示pluginlib插件的过程也可以用于其他costmap插件以及插件planners、控制器和回收率。 [待校准@1407]
在完成本教程之前,请查看前两个关于在仿真环境和使用实物的导航教程 (如果有)。本教程假设读者已具有对导航知识和代价地图的基本理解。 [校准@greg]
备注
对于2021年12月之前的Ubuntu 20.04用户,OpenVDB及其带有 libjmalloc
的二进制文件存在一个已知问题。如果您看到诸如 “无法加载库LoadLibrary错误: /usr/lib/x86_64-linux-gnu/libjemalloc” 之类的错误。so.2: 无法在静态TLS块” 中分配内存,可以使用 export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
解析,直到OpenVDB释放新的二进制文件。 [待校准@1409]
代价地图2D和STVL [待校准@1410]
代价地图2D是我们用来将传感器信息缓冲到全局视图中的数据对象,机器人将用它来创建计划和控制工作。在代价地图2D中,有插件接口可用于创建自定义行为,可在运行时加载。包含的用于代价地图2D的pluginlib插件的示例是障碍层、体素层、静态层和膨胀层。 [待校准@1411]
但是,这些只是基本实现提供的示例插件。导航2中代价地图2D的另一个可用插件是STVL。 [待校准@1412]
STVL是另一个3D感知插件类似体素层。更详细地概述如何它可以发现 in this repo ,但缓冲区3D数据深度相机,声纳,雷达,进入稀疏充气世界模型和删除像素时间比例传感器模型和基于时间过期。这可以有效机器人高动态马氏键方面降低资源利用3D传感器加工高达2x。STVL也对待3D激光雷达和雷达作为一等公民支持。的ROSCon聊STVL可以发现 in this video 。 [待校准@1413]
Tutorial Steps
0-设置
遵循相同的过程在 入门 安装和设置机器人硬件测试或仿真适用。确保ROS 2,Navigation2,Gazebo安装。 [待校准@1415]
1-安装STVL [待校准@1416]
STVL可以安装ROS 2通过ROS构建农场: [待校准@1417]
sudo apt install ros-<ros2-distro>-spatio-temporal-voxel-layer
[待校准@1418]
也可以通过将存储库克隆到您的Navigation2工作区中来从源代码构建它: [待校准@1419]
git clone -b <ros2-distro>-devel git@github.com:stevemacenski/spatio_temporal_voxel_layer
[待校准@1420]
3- RVIZ
带RViz开放 ”publish_voxel_map: true'',可以可视化底层数据结构的3D网格使用” {本地,全球} _ costmap/voxel_grid ”主题。注意: 建议在RViz设置 PointCloud2
大小你体素大小和风格 Boxes
中性色最佳可视化。 [待校准@1431]