问题标签 [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.
python - 扫描匹配算法给出错误的平移值但给出正确的旋转值
我已经在 robots.stackexchange 上发布了它,但我没有相关答案。
我目前正在开发一个机器人上的 SLAM 软件,我尝试了扫描匹配算法来解决里程计问题。
我读了这篇文章: 传感器位移估计的基于度量的迭代最近点扫描匹配
我发现它解释得很好,我严格按照文章中给出的公式来实现算法。
你可以在那里看到我在 python 中的实现: ScanMatching.py
我遇到的问题是,在我的测试过程中,找到了正确的旋转,但翻译完全错误。翻译的价值非常高。
你们知道我的代码中可能存在什么问题吗?
否则,我应该在数学堆栈交换上发布我的问题吗?
ICP部分应该是正确的,因为我测试了很多次,但最小二乘法似乎没有给出好的结果。
正如您所注意到的,我使用了许多 bigfloat.BigFloat 值,因为有时最大浮点数不足以包含一些值。
robotics - 基于slam算法的机器人项目
我是机器人技术的初学者。我想做一个基于 slam 算法的机器人项目。我知道很多算法,我有信心用任何语言实现它,但我不知道基于图像处理和硬件的任何想法。所以,在看到我可以自己制作一个基于 slam 的机器人项目之后,任何人都可以提供基于 slam 机器人项目的教程[包括硬件如何组织以及如何为该项目完成图像处理]。
此外,如果有人为此给我一个视频讲座系列,那将非常有帮助。提前致谢。
c++ - 如何将 kinect 轨迹矩阵转换为 4x4 齐次矩阵(示例)
最近我使用RGBD-Slam来获取kinect相机轨迹。每一帧都会有这个:
时间戳 tx ty tz qx qy qz qw
tx ty tz给出了彩色摄像机的光学中心相对于运动捕捉系统定义的世界原点的位置。
qx qy qz qw以单位四元数的形式给出彩色相机的光学中心相对于运动捕捉系统定义的世界原点的方向。
我需要将其转换为 4x4 齐次变换矩阵。有什么提示可以解决这个问题吗?让我们说这个例子如下:
1421307756.191874 0.004530 0.050319 0.003332 0.003734 0.023578 -0.054199 0.998245
所以,
时间戳:1421307756.191874;交易量:0.004530
ty:0.050319;茨:0.003332
qx:0.003734;qy : 0.023578
qz:-0.054199;qw:0.998245
并且, fx = 525.0;fy = 525.0; // 默认焦距
CX = 319.5; cy = 239.5;// 默认光学中心
亲切的帮助将不胜感激。
谢谢。
c++ - 在 OS X 上编译 lsd_slam 会引发链接错误 ld: library not found for -lGL
我正在尝试在 OSX 10.9.5 上编译 lsd_slam 并且我得到构建错误为
根据我从这个 SO 答案的理解,它需要使用标志进行编译-framework OpenGL
。需要进行哪些更改以及在哪个 Makefile 中选择框架而不是 -lGL。
python - 在 EKF-SLAM 中计算地标协方差的问题
我最近在 python 中实现了一个扩展的卡尔曼滤波器,它采用机器人里程计和激光测距仪输入。但是,它没有按预期工作,所以我记录了每一步的协方差矩阵以尝试查找故障。
我认为问题在于添加第二个地标。
下面显示了当我将 P 协方差矩阵从零地标增加到两个地标时的每个步骤。在这种情况下,机器人首先向前行驶 53mm。
状态向量,添加地标前后的位置:970mm 范围,23 度。
P,添加地标协方差前后(RR 是否出现 cov 正确?给定状态 ^):
P,添加 Robot-Landmark 和 Landmark-Robot 交叉方差后。
状态向量,添加第二个地标后看到:813 毫米范围,53 度。
P,添加新的地标协方差和 RL、LR 交叉协方差后:
P,添加地标-地标交叉方差后,这就是事情变得奇怪的地方:
作为参考,这是我计算上述内容的方式:
jacobianJXR 状态:
是什么导致了最后一部分的极端值,前面的步骤是否正常?提前致谢。
compare - 将单目 SLAM 路径与地面实况进行比较
我已经创建了一个在 6DoF(位置和姿态)中具有非常准确的地面实况的数据集,并且想用它来比较不同单目 SLAM 算法在 6DoF 中路径的准确性。
地面实况导致相对于地面实况坐标系的 6DoF 路径。SLAM 算法产生相对于 SLAM 坐标系的 6DoF 路径
由于单目 SLAM 算法的性质,我没有路径的尺度。
如何用我的数据集解决这个问题?有没有可用的脚本?
robotics - Graph-SLAM 仅使用里程计信息时,它还能运行吗?结果是什么?
这是一个难题。
我知道EKF-SLAM,它使用上一次的状态来估计下一个状态作为在线过滤器,我也知道Graph-SLAM,它使用过去的所有状态作为完整的 SLAM,并将它们表示为只是一堆节点和边缘,并通过最小化误差来优化节点和 eges 的结构以估计更好的状态。
现在,我知道仅使用里程信息运行 EKF-SLAM 没有任何意义,因为 EKF 所做的是通过平衡里程信息和地标信息观察之间的权重来估计未来状态。所以两者都是需要的。
我的问题是,是否可以仅使用里程计信息而没有任何地标观测信息来运行Graph-SLAM ?似乎 Graph-SLAM 可以通过收集所有 Odometry 信息状态到当前状态并将它们转换为节点和边来运行,就像提供 Odo 和 obs 时一样,它可以优化节点和边的结构。有可能吗?输出是什么意思?“优化”里程计?有没有想过?先感谢您。:)
ubuntu - 如何在 ROS 上使用 lsd_slam?
我使用 ubuntu 12.04。我从 wiki 页面安装 ROS。然后我在这里安装 lsd_slam 代码表单。文件夹下有一个自述lsd_slam
文件。这些文件夹的视图如下:
自述文件说
Quickstart / Minimal Setup 首先,安装 LSD-SLAM 2.1 或 2.2,取决于你的 Ubuntu / ROS 版本。您现在不需要 openFabMap。
下载 [Room Example Sequence] ( http://vmcremers8.informatik.tu-muenchen.de/lsd/LSD_room.bag.zip ) 并解压。
启动 lsd_slam 查看器:
rosrun lsd_slam_viewer 查看器
启动 lsd_slam 主 ros 节点:
camera_info:=/camera_info
播放序列:
您应该会看到一个窗口显示带有颜色编码深度的当前关键帧(来自 live_slam),以及一个显示 3D 地图的窗口(来自查看器)。如果由于某种原因初始化失败(即,大约 5 秒后深度图仍然看起来不正确),聚焦深度图并按“r”重新初始化。
首先,我运行roscore
. 然后,
第一个命令打开查看器窗口:
最后一个命令的结果在这里:
终端等待此步骤。我不确定那/image:=/image_raw
是真的。我没有任何 image_raw 文件或文件夹。这种用法是真的吗?如果是,为什么我在查看器上看不到任何变化?
android - 为 Android 创建 LSD-SLAM 静态库
我正在尝试创建一个 LSD-SLAM 静态库,以便在 Android 应用程序上使用它。要知道,目前的LSD-SLAM程序是针对ubuntu上的ROS的。有人知道一个好的教程,或者是否有人已经将库转换为 Android?
谢谢
开源项目如下:https ://github.com/tum-vision/lsd_slam 研究来自:http: //vision.in.tum.de/research/lsdslam