首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为自主机器人创建和存储2D/3D地图

为自主机器人创建和存储2D/3D地图
EN

Stack Overflow用户
提问于 2015-12-17 06:05:39
回答 1查看 682关注 0票数 1

我已经建造了一辆自动遥控汽车,能够跟踪其位置并扫描其周围的障碍物。然而,我被困在如何存储/创建其环境的地图上。环境的大小不会是固定的,因为机器人探索它可能会发现新的领域。我的背景是导航,所以这部分和确定障碍物是(对我来说)容易的部分。困难的部分是如何存储/访问数据。

最初,我打算使用分辨率为2-5厘米的2D阵列/矩阵,即每个单元在投影到地面时都有2-5厘米宽。然而,这可能会消耗大量内存(它是嵌入式的,所以我现在的资源有限,512mb的RAM,但可能会在原型完成后减少)。此外,我最终将把系统转移到一个四轴飞行器上,这样我就可以在3D模式下工作了。下一个解决方案是创建一个障碍物,它将有一个位置。然而,我不确定如何: 1.跟踪对象的大小和方向,即如何判断对象是一堵墙还是一条桌子腿(无法避开一堵墙,可以绕过一条腿)和2.如何有效地搜索/判断障碍物是否在机器人的方式中。

我正在使用c++,并集成了摄像头和超声波传感器来检测环境。如上所述,我坚持如何有效地存储环境。我希望保留环境信息,无论是保存到文件还是发送到服务器,以便我以后可以使用/访问地图。有没有人对尝试什么有什么建议,或者从哪里开始寻找,这对我来说都是新的?

EN

回答 1

Stack Overflow用户

发布于 2015-12-17 06:31:18

您可以使用R-Tree,其中您的初始位置是树的根。每次你可以去某个地方,你可以在树上添加你去过的地方。如果可能,您还可以将一些相邻部分融合在一起。

从内存的角度来看,您不受数组/矩阵限制的限制,您只存储有价值的数据。你可以选择存储什么:障碍物还是自由空间。在这种结构中搜索也是有效的。

至于实现,你可以看看r-tree in the boost library

稍后,如果您希望机器人从一个点移动到另一个点,您甚至可以基于您的树创建一个图,供路径查找算法使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34322984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档