美文网首页
ROS-RTAB MAP问题汇总

ROS-RTAB MAP问题汇总

作者: WilsonGuo | 来源:发表于2023-06-11 14:11 被阅读0次

1.关于guess的说明

https://github.com/introlab/rtabmap_ros/issues/398

2.里程计丢失

当背景变成红色时,表示无法计算里程,即里程丢失,无法继续建图。这些事件会导致红色屏幕:

     1.无特征的环境:白墙、均匀的纹理、黑暗区域等。没有足够的特征,就无法计算里程计。对于具有足够视觉特征的环境,里程计质量将超过 100。

     2.“空旷空间”环境:对于像 Kinect 这样的传感器,良好的特征位于距离传感器大约 0.4 到 4 米的范围内。例如,如果您将传感器指向一个没有 4 米以下物体的清晰区域,则里程计很可能会失去跟踪。

    3.对于帧速率来说相机运动太快:如果相机移动得太快,连续帧之间匹配的特征就会减少。根据相机的不同,RGB 图像也可能会模糊,这会减少帧之间良好视觉匹配的数量。

    4.深度和 RGB 图像之间的错位:如果视觉特征的深度错误,这会对里程计产生负面影响。确保深度图像正确注册到 RGB 图像,如下所示

     要从丢失的里程计中恢复,请更换无法计算里程计的相机:可以再次跟踪相机姿势(红色背景消失)并且映射应该继续。如果您总是在环境中的同一个地方丢失里程计,请尝试向场景中添加纹理/对象以添加更多要跟踪的视觉特征。如果你有一个有纹理的地面,你可以稍微倾斜相机以便能够从地面跟踪视觉特征。

      要从丢失的里程计中恢复,您还可以使用“检测 -> 重置里程计”(在 ROS 上:)重置里程计$rosservice call /reset_odom。重置前不要忘记将相机更换为纹理较多的场景,否则里程计将仍然无法启动(RED 背景将留在这里)。重置里程计将使 RTAB-Map 创建一个新地图,因此地图应该消失并显示一个新地图,

     当旧地图检测到闭环时,它应该重新出现。

3.使用rtabmap构建地图时,如何填充地图中的空白和移除地图外的对象?

我使用的机器人是turtlebot2,我用的是ZED立体摄像头而不是RGBD摄像头,没有使用激光雷达传感器。

当我使用rtabmap算法让我的机器人在房间里建地图时,我发现结果如下图:

右侧、底部和左侧的放射状黑色部分不应该出现在地图上,因为它们超出了房间的范围。

我想知道如何删除它们?

中间的浅灰色部分(L型,有路径通过)是空的,没有障碍物。但它们似乎并没有被完全填满,有些还留有空白(围绕路径的起点和终点)。

应该怎样做才能让这些应该磨的地方也标上浅灰色呢?

**********************************************

要删除远点,请为本地占用网格设置最大范围。

为了填充未知空间,我们需要启用光线追踪(默认使用激光雷达启用)。

这里有两种方法:

2D 方法:更快/更少的内存,但如果障碍物没有出现在相机的视野中,则可能会被错误地清除

Grid/RangeMax=3

Grid/RayTracing=true

Grid/3D=false

Grid/MaxObstacleHeight=2

3D 方法:更慢/需要更多内存,光线追踪在 3D 中完成,因此对于相机不再看到的障碍物更安全

Grid/RangeMax=3

Grid/RayTracing=true

Grid/3D=true

Grid/MaxObstacleHeight=2

如果你可以假设机器人前面的所有障碍物总是可以在相机的视野中看到,我会选择 2D 情况以提高 cpu/内存效率。

我们还可以将深度图像转换为激光扫描,为此 RTAB-Map 默认会进行光线追踪。

但不一定,如果您将参数设置Grid/RayTracing为true,它也会对深度图像执行此操作。

通常,使用 nodelet 是提高效率的首选方法。

例如,如果两个 nodelet 在同一个管理器中并且图像应该在它们之间共享,图像主题将不会被序列化和反序列化,只需要内存中的指针副本

相关文章

网友评论

      本文标题:ROS-RTAB MAP问题汇总

      本文链接:https://www.haomeiwen.com/subject/beosedtx.html