0

我们目前正在使用 Slamtec RPLidar A1。我们有一个安装了激光雷达的机器人。我们的目标是检索房间中的 ax 和 y 位置。(这是一个封闭的房间,可能有超过 4 个角落,但整个房间应该被识别一次(RPlidar 站在哪里并不重要)。

无论如何,没有给出平面图。我们用 BreezySLAM 得到了到目前为止的 ax 和 y 位置,但我们认识到,无论 RPlidar 站在哪里,它总是将自己视为中心,所以我们真的不知道如何从这些信息中检索正确的 x 和 y。

我们是这个主题的新手,也许有人可以给我们一个很好的提示或链接来找到一个简单的解决方案。

PS:我们不打算跟踪机器人的运动。

4

2 回答 2

0

实现这一目标的最简单方法是记录您房间的地图,然后使用诸如蒙特卡罗定位之类的方法将您的机器人定位在其中,或者只使用完整的 SLAM 算法。

如果您可以选择 ROS,您可以尝试使用Hector SLAM 包来获得完整的 SLAM 或创建并保存您房间的地图,然后您可以将其输入AMCL 包以在其中执行蒙特卡罗本地化。

在任何一种情况下,机器人的 x 和 y 位置都可以相对于房间的原点进行检索,因为它是在映射部分中创建的,作为地图框架和机器人框架之间的转换。

于 2019-12-06T15:55:21.703 回答
0

任何传感器都认为自己处于环境的中心。记录地图的想法是好的,如果不是的话。你可以假设任何一个角落都可以是你的零点,你的房间不是方形的,你可以测量墙壁的长度,你可以减少到 2 点。不幸的是,如果您在环境中没有任何额外的标记,或者您无法在实际使用之前创建地图,恐怕机器人没有机会正确理解所需的 (0,0) 点在哪里。

于 2019-12-09T07:15:29.670 回答