问题标签 [slam-algorithm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1756 浏览

computer-vision - SLAM如何提取地标?

在“ slam for dummies ”教程中,使用了激光扫描仪,并展示了两种地标提取方法。

但大多数实际的 SLAM 实现都是基于相机图像的。在这些应用程序中,如何提取地标?Durrant-Whyte 论文没有提到它,我也找不到包含地标提取的端到端演示项目。

0 投票
2 回答
6604 浏览

android - android 的同步定位和映射

我最近开始探索视觉识别的世界,对 SLAM 特别感兴趣。我已经在 openslam.org 的笔记本电脑上尝试并测试了不同的 SLAM 实现,我仍然是该领域的新手,并且仍在学习它。我想在安卓设备上实现 SLAM。谁能指出我任何这样的实现。或者你能建议哪种 SLAM 实现在安卓设备上效果最好。我可以使用顶级的安卓设备,例如 Galaxy S6 或 Nexus 5。

在开始研究我的想法之前,我只想知道哪种实现在 android 设备上的效率和准确性方面效果最好。

谢谢

0 投票
0 回答
352 浏览

python - Turtlebot 扫描已知环境以寻找对象 - 探索策略

Turtlebot 使用预先生成的地图进行探索

我正在研究一个应该在已知环境中导航(在预建地图的帮助下)并搜索对象(例如红球)的海龟机器人的探索策略。

该地图是使用 gmapping 生成的,现在我正在尝试实施一种探索已知地图的策略。虽然在地图上生成随机点,然后在这些点上进行 360° 扫描是一种选择,但我对这种方法不太热衷,因为它不能保证如果对象存在就会被定位。

我想要的是一组点,这样在访问所有这些点并在每个点执行 360° 扫描后,机器人可以覆盖地图的整个可访问/可见区域。

我觉得艺术画廊算法(在这里描述:http: //cs.smith.edu/~orourke/books/ArtGalleryTheorems/Art_Gallery_Full_Book.pdf)也实现了类似的东西,因此试图在我的场景中实现它。

艺术画廊问题需要多边形,我发现从真实机器人上的 gmapping 生成的地图生成多边形非常困难(尽管对于更简单的地图是可能的)。

我曾尝试在 Python 中使用三角形模块来创建对象簇的凸包,但这在像下面链接的嘈杂环境中不太有用。(我通过仅绘制障碍点将 .pgm 文件转换为 .png)

障碍点

注意我的turtlebot 没有激光扫描仪。它只有一个 Asus Xtion Pro Live

我非常感谢以下方面的帮助:

  1. 有没有更简单的方法可以用turtlebot(最好是ROS中的一些包)探索已知地图?
  2. 如果艺术画廊算法是一个可行的选择,那么我应该如何从障碍物的扫描点获得准确的多边形?

先感谢您。

0 投票
0 回答
180 浏览

android - 增强现实同时定位和映射的参考/帮助

许多现成的用于增强现实的 SDK,例如 Vuforia。我们可以使用自然特征跟踪(无标记;NFT)来跟踪环境。但是,我听说同步定位和映射 (SLAM) 是一种更复杂、更可靠、更强大的技术。

有谁知道用于执行移动 SLAM 以在手机上实现增强现实跟踪的优秀(初学者/中级)论文/算法/教程?

我想从知道这些东西的人那里得到一些关于从哪里开始的信息。我知道我们那里有很多关于机器人技术的 SLAM 论文,但我特别想要一些可以用来创建用于增强现实跟踪的手机 SLAM 的东西。

提前致谢。

我发现的一些参考资料:

  1. 将 SIFT 用于增强现实
  2. Android 的同时定位和映射
0 投票
1 回答
517 浏览

google-project-tango - 从 Google Tango Motion Tracking API 获取检测到的功能

我想知道如何获取运动跟踪中使用的当前特征点以及学习区域中存在的特征点(检测到与否)。

有一篇较旧的相关帖子没有有用的答案: How is it possible to get tracked features from tango APIs used for motion tracking。我正在使用探戈而不是自己进行 SLAM 和 IMU 集成。

我需要做什么,像在一些演示视频中那样可视化跟踪的特征。https://www.youtube.com/watch?v=2y7NX-HUlMc (0:35 - 0:55)

一般来说,我想要的是某种衡量或视觉指导,说明设备对当前环境的学习程度。我知道,有 Inspector 应用程序,但我需要这些信息。

感谢您的帮助 ;)

0 投票
2 回答
928 浏览

labview - labview中的机器人里程计

我目前正在从事一个(学校)项目,该项目涉及一个必须在玉米地中导航的机器人。

我们需要在NI Labview中制作完整的软件。

由于机器人必须能够执行的任务,机器人必须知道它的位置。

作为传感器,我们有一个 6-DOF IMU、一些不可靠的车轮编码器和一个 2D 激光扫描仪 (SICK TIM351)。

到目前为止,我无法弄清楚任何算法或教程,因此真的陷入了这个问题。

我想知道是否有人曾尝试在 labview 中使 SLAM 工作,如果是,是否有任何示例或解释可以做到这一点?

或者是否有包含此函数/算法的 LabVIEW 工具包?

亲切的问候, Jesse Bax 机电一体化三年级学生

0 投票
1 回答
141 浏览

ros - 如何在 ROS 中查看 rtabmap 的帧数而不是使用 rtabmapviz

我使用 rtabmap 作为我的 RGB-D SLAM 应用程序,我只想检查 rtabmap 在不同机器上运行的性能。我不想使用 rtabmapviz,因为它包含太多信息,我只需要帧号和最终地图。那么有什么方法可以检查帧号而不是使用 rtabmapviz 吗?

我的操作系统是 Ubuntu 14.04,我的 ROS 版本是 ROS indigo。

0 投票
2 回答
363 浏览

3d - 是否有适用于 Kinect 2.0 的室内映射库?

我正在探索 Kinect 具有的可用于机器人领域的功能。

我正在开发一个远程呈现机器人,其中 Kinect 是机器人的重要组成部分。实际上,该组件用于生成机器人所在位置的地图,以便机器人能够顺利导航并避开前方的障碍物。当我搜索类似的项目时,我发现了一些更接近的应用程序,即使与我想做的不同。与我的研究最接近的应用是麻省理工学院完成的后续项目

到目前为止,我所知道的是,该过程涉及的技术是:

  • 3D 映射
  • 3D点云
  • 同时定位和映射 (SLAM)

我目前使用以下教程成功生成了 3D 点云,但不知道下一步该做什么。

我很想有任何有用的信息,无论是教程还是图书馆或类似的东西。基本上是一个起点

0 投票
0 回答
83 浏览

image-processing - 准确的图像大小调整

我需要使用双线性插值调整图像大小并创建图像金字塔。我将检测金字塔不同级别的角点并缩放像素坐标,使它们与最大图像的尺寸相关。

如果在所有级别中将对象的角检测为角/关键点/特征,则在缩放不同级别的相应像素坐标以使其落在最大图像上之后,理想情况下我希望它们具有相同的价值。因此,在调整图像大小时,我会尽可能准确。

假设我正在调整图像 L_n_minus_1 的大小以创建更小的图像 L_n。我的比例因子是“比率”(比率> 1)。

*我不能使用任何图书馆。

我可以使用下面的伪代码调整大小(这是我在网上搜索调整大小算法时通常会找到的。)

或者我可以使用下面这段修改后的代码:

第二段代码是假设像素中心的坐标像 (0.5, 0.5) 一样,就像它们在纹理中一样。这样,左上角的像素将具有坐标 (0.5, 0.5)。

让我们假设:

2 x 2 目标图像正在从 4 x 4 源图像调整大小。

在第一段代码中,假设第一个像素具有坐标(0,0),因此例如我的比率是2。然后

xSrcInt = (int)(0*2); // 0 ySrcInt = (int)(0*2); // 0

xDiff = (0*2) - 0; // 0 yDiff = (0*2) - 0; // 0

因此,实际上我只是从源中复制第一个像素值,因为 c0 将为 1,而 c1、c2 和 c3 将为 0。

但在第二段代码中我会得到

xSrcInt = (int)((0.5*2) - 0.5); // 0; ySrcInt = (int)((0.5*2) - 0.5); // 0;

xDiff = ((0.5*2) - 0.5) - 0; // 0.5; yDiff = ((0.5*2) - 0.5) - 0; // 0.5;

在这种情况下,c0、c1、c2 和 c3 都将等于 0.25。因此,我将使用左上角的 4 个像素。

请让我知道您的想法以及我的第二段代码中是否有任何错误。就视觉效果而言,它们运行良好。但是是的,我似乎确实注意到关键点与第二段代码更好地对齐。但可能是因为我有偏见:-)。

提前致谢。

0 投票
1 回答
81 浏览

robotics - 如果地面移动机器人被编程为使用声纳传感器避开障碍物,它们是否需要知道其位置信息?

这是一个时不时会想到的问题。我个人认为机器人不需要知道它的位置信息,因为:

1) 如果它们被编程为四处走动,它们可以轻松避开障碍物,而无需知道障碍物在哪里,只要声纳传感器能够准确测量机器人正前方物体的距离即可

2) 机器人可以利用 SLAM 技术并建立其环境地图,它们不需要任何此类位置信息。

...对于这样的问题,什么是更合理的解释或答案?很久以前,我对机器人进行了编程,让它移动到多个位置,并为其提供了避障行为,它几乎总是在不知道自己的位置信息的情况下到达这些位置并返回。我使用了声纳传感器(用于避障)并使用了颜色传感器(让它寻找放置在地面上的红色,然后执行下一步动作)。