问题标签 [slam]
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.
c++ - 我在使用 boost::serialization 时遇到了一个问题,我的代码在 linux 中运行良好,但在 windows 中遇到了异常
我正在尝试使用 boost 保存由 ORB-SLAM 构建的地图,该代码在 linux 中运行良好,但是当我将其移动到 Windows 时,我在加载数据时遇到了异常。下面是我的部分代码,这是一个大项目,所以我只展示相关代码。
.h 中的一些代码
CPP简介
调用函数如下:
在 Linux 中保存和加载都可以,但是加载只会抛出 boost::archive::archive_exception 问题,没有告诉我任何细节。
computer-vision - 使用深度学习特征的 SLAM 系统?
有没有人尝试过开发一个使用深度学习特征而不是经典AKAZE/ORB/SURF
特征的 SLAM 系统?
浏览最近的计算机视觉会议,似乎有不少关于成功使用神经网络来提取特征和描述符的报告,并且基准测试表明它们可能比经典的计算机视觉等效物更强大。我怀疑提取速度是个问题,但假设一个有不错的 GPU(例如 NVidia 1050),那么在具有深度学习特征的 640x480 灰度图像上构建一个以 30FPS 运行的实时 SLAM 系统是否可行?
computer-vision - 使用 g2o 库进行捆绑调整。如何验证?
我有一个简单的捆绑调整功能,使用 g2o 库来优化相机姿势和 3d 地图点。我传入两个KeyFrames
,每个包含:
以及 a vector
of Mappoint
,其中包含:
我的功能是:
我运行该功能,它似乎可以工作,打印:
但是我怎样才能验证这些结果呢?g2o 中有没有办法在运行优化之前和之后打印重投影错误?或者我在上述结果中需要的信息是否在某处?
python - 激光雷达数据图
SLAM 使用 RpLiDar 和 ROS
您好,我有一个包含两列 [Degrees, Distance] 的表格,我需要显示该信息以围绕我的位置制作地图。任何人都知道这样做的好方法,例如每次我在中心并且我检测到 90 度是什么,所以我在那里打印一个点。
我正在使用 Ubuntu 18.04 LTS、Python 2.7.15、ROS melodic 和 RpLidar A2M8
编辑
我用它来绘制我的极坐标表,但我不知道如何实时绘制它
r - 交叉产品滚动值
我试图找出一种基于数据向量计算滚动总和值的方法。下面是一个示例数据框和我试图计算的答案,但无法找出正确的解决方案。本质上,我试图将每个 x 列值乘以 y 向量并根据周期求和。
我查看了 slam 包以及 crossprod 功能,但无济于事。
提前致谢!
computer-vision - 使用环境理解稳定物体
我正在寻找在世界上特定位置放置和稳定对象的最佳解决方案。我考虑了解 3D 环境及其特征点,以便对环境进行完整的 3D“扫描”,并以此了解 AR 对象的位置。
我尝试过使用 ARCore 云锚点,但不幸的是,只依赖一个锚点,在光线投射和平面的交叉处,并没有给我稳定的对象——它出现在不同的地方并且没有保持稳定,这就是为什么我想了解如何使用环境的最佳 3D 扫描。
我也愿意听听其他技术。
谢谢!
python - 如何使用 rplidar 和 hector-slam/hector-mapping 找到障碍物?
在工业领域,一个机器人会捡起苹果并把它们分拣出来。机器人会快速移动。在这种情况下,如果有人靠近机器人,它应该放慢速度。为此,我想使用固定位置的 Rplidar A2。使用 Rplidar 我想检测任何人或其他障碍物正在接近危险区域。到目前为止,使用 Rplidar python 包我能够从中提取数据。由于我是全新的,我不知道如何实现这一点。
我在想我可以事先使用 hector slam 进行环境映射,我在这里看到过,这样机器人就可以感知环境,然后当环境发生变化时,它可以决定是否有人或障碍物靠近机器人或不是。在我得到环境的图像之后,下一步是什么?图像处理是 nedded 吗?
如果有人告诉我如何实现这一目标,我会很高兴,
ros - 在真实 TurtleBot 中测试的基于里程计的 slam 算法生成的劣质地图
我目前正在一个真正的TurtleBot(ROS Kinetic)中测试几种 slam 算法。尽管 TurtleBot 上的一切似乎都运行良好,但我在来自基于里程计的 slam 算法的地图上遇到了一个问题。尽管我更改了TurtleBot底座以确定底座是否存在硬件或里程计问题,但地图保持不变。我使用的激光雷达最大射程可达 17m。
Gmapping(使用里程计)我用这些参数测试了gmapping:
KartoSlam(使用里程计) KartoSlam 生成的地图在实验室的房间中使用默认参数进行测试是这样的。
CRSM Slam(未使用里程计) CRSM Slam 生成的地图在实验室房间进行测试,不使用里程计。如您所见,CRSM 地图比前两个要好得多。
问题:
既然我已经在两个不同的 TurtleBots 上尝试过算法,我应该在哪里寻找解决方案?我怎么能提高地图质量,因为到目前为止我得到的真的很差?
python - 是否有将极坐标网格映射到笛卡尔网格的快速 Numpy 算法?
我有一个包含一些极坐标数据的网格,模拟从激光雷达获得的数据以解决 SLAM 问题。网格中的每一行代表角度,每一列代表一个距离。网格中包含的值存储了笛卡尔世界占用地图的加权概率。
转换为笛卡尔坐标后,我得到如下内容:
此映射旨在用于具有至少 10 个粒子的 FastSLAM 应用程序。我获得的性能对于可靠的应用程序来说还不够好。
我尝试使用嵌套循环,使用 scipy.ndimage.geometric_transform 库并使用预先计算的坐标直接访问网格。
在这些示例中,我使用的是 800x800 网格。
嵌套循环:大约 300 毫秒
Scipy 库(在此处描述):aprox 2500ms(因为它插入了空单元格,所以得到更平滑的结果)
预计算索引:80ms
我不太习惯 python 和 Numpy,我觉得我正在跳过一种简单快捷的方法来解决这个问题。有没有其他方法可以解决这个问题?
非常感谢大家!
machine-learning - 如何在相机以外的其他传感器上使用 SLAM?
我有一个传感器,可以读取每个位置的电磁场强度。
并且每个位置的场都是稳定且独特的。所以读数只是位置的函数,如下所示:reading = emf(x,y,z)
读数由 3 个数字组成(不是位置)。
我想找到函数的反emf
函数。这意味着我想找到pos
这样定义的函数:x,y,z = pos(reading)
我无法同时使用emf
和pos
功能。我想我想pos
使用神经网络逐步估计函数。
所以我通过 IMU 的空间输入reading
和加速传感器。ax,ay,az
加速度不是那么准确。我想使用这 2 个输入来帮助我确定传感器随时间的位置。您可以假设第一次读数时起始位置为 0,0,0。
简而言之,输入是reading
在ax,ay,az
每个时间步上,输出将根据函数的权重进行调整,pos
或者输出将直接定位。
我一直在阅读SLAM(同时定位和映射)算法,我认为这可能对我的情况有所帮助,因为我的问题是概率性的。如果我准确地知道加速度,我不需要任何概率,但加速度是不准确的。
所以我想知道如何根据SLAM对这个问题进行建模?不过,我没有相机来做基于视觉的 SLAM。
为什么我认为这很容易处理?如果第一个读数是1,1,1
并且位置在原点0,0,0
,并且我移动传感器,则位置可能会漂移,因为传感器以前从未见过其他读数,但在我回到原点后,读数将1,1,1
再次出现,因此传感器应该报告原点0,0,0
作为输出。在传感器移动期间,算法应过滤加速度,以便所有先前的位置都有意义。