问题标签 [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.
optimization - ceres求解器分析导数不起作用
我要优化的参数是pose = [x,y,theta]
我的目标函数是最小化姿势和激光点的占用值。在这里我将它们手动添加到residuals[0]
我有 3 个参数[x,y,theta]
,所以我的雅可比有 3 个维度jocobians[0]
但是当我运行程序时,报告如下:
既然我设置了雅可比,怎么能说梯度范数这么小呢?
slam - EKF-SLAM:忽略地标之间的相关性会产生什么后果?
在实施 EKF SLAM 时,我注意到协方差矩阵很快开始获得地标之间的相关性。随着地标数量的增加,这些相关性变得非常昂贵。我想知道简单地忽略这些相关性会产生什么后果。
我只会保留机器人姿势和每个地标之间的相关性。
在我的例子中,地标的深度以非常高的不确定性开始,我只测量到地标的方位。如果我从不计算地标之间的相关性,地标的深度会收敛吗?
直观地说,我认为地标轴承矢量的测量只会影响该地标的轴承矢量和深度以及姿势。
谢谢
computer-vision - 当对所有相机应用刚性运动时,如何更新多相机系统的协方差?
例如,对于 6 自由度相机状态,两个相机具有12
状态参数和12*12
协方差矩阵(假设高斯分布)。当对相机应用 6 自由度刚性运动时,该协方差如何变化?
如果 6 自由度也是高斯分布怎么办?
algorithm - SLAM 算法在哪里以及如何保存地图?
我是 SLAM 的新手,我敢肯定这个问题很愚蠢,但我真的很想知道这种姿势和区域数据积累在 SLAM 中是如何进行的。一旦算法初始化,它就会开始跟踪姿势(并在某处(在哪里?)写入坐标序列)并恢复地图(存储在某处(在哪里?)的点云)。我对么?然后算法迭代所有持久点以实现闭环目的?积分是否存储在某个数据库中?或者使用什么数据结构?
请帮助我澄清情况!(因为你的脑袋可能偶尔会被无人机的螺旋桨切开,这是我未来的 SLAM 驱动的!))
提前致谢!
computer-vision - 三角剖分后如何合并点云
我正在研究 Motion 的结构。到目前为止,我已经执行了以下步骤。
- 特征匹配
- 基本矩阵
- 基本矩阵
- 相机矩阵 P
- 通过三角测量,我得到了所有匹配特征的 Point3d 类型值。我将它存储在 pointcloud 变量中。
- 捆绑调整,优化姿势和点云。
- 添加更多视图以重建。
问题出现在 7 处,例如有 3 张图像,即 1、2、3。而point_1对应point_2。而point_2对应point_3。分别在 image_1、image_2、image_3 中的 point_1、point_2、point_3。
三角剖分后,point_1 和 point_2 得到结果 worldPoint_1 point_2 和 point_3 得到结果 worldPoint_2
wordldPoint_1 和 worldPoint_2 应该相同,因为 Point_1,2,3 是对真实世界点的相同观察。但是,由于存在噪声,worldPoint_1 和 worldPoint_2 不相等。
所以我的问题是如何在添加新图像以重建和进行三角测量后合并点云。
computer-vision - KITTI 校准文件中的参数格式
我从KITTI 的部分里程计中访问了校准文件,其中一个校准文件的内容如下:
我可以得到P0,P1代表黑白相机和P2,P3彩色相机。据我了解,相机内在的常见形状是
所以我无法弄清楚每一行中剩余的三个参数(我猜是用于失真校正)和 label 后面的最后一行的含义Tr
。
可以从这篇文章中找到一个类似的问题,但它的答案对我来说仍然不明显。谁能帮我吗?
opencv - 使用网络摄像头实现 sfm/slam
我想使用我的网络摄像头实现 Structur from Motion (SfM) / 同时定位和映射算法。我对这个话题很陌生,所以我需要互联网专家的建议。我现在可以为此目的构建 OpenCV opencv sfm 教程,我查看了 OpenSFM,但它似乎只是一个 GUI。我可以使用哪些其他开放库/程序来完成此任务?任何建议/建议/教程表示赞赏。
computer-vision - 如何合并两个具有不同尺度的点云?
我们现在正在使用 SFM 来重建我们的教学楼。但是我们学校太大了,一次都无法重建。所以我们决定把它们分成几个块并重建它们,然后合并这些点云。
由于 SFM 的尺度不明确,所以点云的尺度不同。
而点云合并算法,如ICP,只能估计旋转和平移变换矩阵,而不能估计相似变换矩阵。
那么,是否存在一种算法来合并两个不同尺度的点云或任何论文?
opencv - ORB-SLAM2 openCV安装错误
我正在尝试 ORB SLAM2 来进行姿势估计的进一步处理。我在 Ubuntu 中安装它,在安装了 python、openGL、openCV、C++ 编译器、Pangolin、Eigen3、BLAS 和 LAPACK 之后,我在安装 DBoW2 时遇到了 make 错误。错误如下。
android - 如何在Android平台上获取相机拍摄的图片的准确时间戳?
我正在尝试使用 Android 的相机和传感器(陀螺仪和加速度计)将视觉惯性状态估计器移植到 Android 平台。
但是在我完成之后,我才发现结果让我很失望,已经确认是Camera拍摄的照片的时间戳不准确。
为了简化这个问题,我现在尝试将 Android 相机拍摄的所有图片保存到文件中,另一个 csv 文件包含所有图片文件名及其相应的时间戳。
以下是我的代码的一部分以及我为这个问题所做的工作:
用 SurfaceTexture 连接相机,我用它来消除在屏幕上显示图片的时间(虽然这可能没用),并添加一个
/li>CallbackWithBuffer
tothis
,它将onPreviewFrame
在捕获新图片时调用onPreviewFrame,把所有图片和时间戳放到一个缓冲区,用另一个线程保存图片。
/li>outImage
是包含所有图片文件名及其对应时间戳的csv文件,而真正保存图片的过程是在另一个过程中。第一行是我获取相机拍摄的图片时间戳的地方
你能帮我解决这个问题吗?