ros - 如何从激光传感器数据制作占用网格图?

标签 ros slam-algorithm

我正在做一个关于 ROS 的类(class)项目,并且被困在相当简单的任务上。

我的机器人模型有一个激光扫描仪,我在凉亭中使用我的机器人模型生成了一个包文件

我被要求像在 SLAM 中一样生成占用网格图。我不允许使用 gmapping 或 hector 映射,所以我必须编写自己的代码。

现在我已经实现了我初始化 map 并在rviz中可视化它。这相当简单,因为我只是在 .data 中设置了高度、宽度、分辨率并全为零。

我的下一个任务应该是使用正在发布的传感器数据并生成 map 。在这里我被卡住了,因为我找不到一些合适的教程。然而,我发现了相同任务的一个很好的实现,但它太冗长了,我无法破译。它是 here

你能解释一下我在哪里可以得到帮助吗?或者你也可以帮我解答。

如果你问,我也可以粘贴我的代码。

最佳答案

首先,您必须区分两个任务:模拟定位和映射 (SLAM),以及使用已知姿势映射。
在第一个问题中,您希望同时解决映射和定位问题,而第二个问题是“只是”将所谓的逆传感器模型绘制到 map 中。
对于这两种情况,本书来自 Thrun给出了很好的算法和理论来解决这个问题。
无论如何,看看Dirk Hähnel's thesisHEISE Bot implementation (in German)深入了解映射。

关于ros - 如何从激光传感器数据制作占用网格图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23394432/

相关文章:

python - 在 ROS - Python 中使用来自多个主题的数据

c++ - 免费(): invalid pointer for vector<vec4i> c++

git - Git 项目的 CMake 外部项目

c++ - 在 OS X 上编译 lsd_slam 会抛出链接错误 ld : library not found for -lGL

c++ - 如果每个节点只知道到 3 个最近节点的距离,则构建一个 2d map

c++ - 如何在 ROS 中查找计算机的当前日期?

c++ - OpenCV 错误 : Assertion failed (a_size. 宽度 == 长度)