我正在建造一个自主的水下机器人。它将在游泳池中使用。它应该能够在任何普通大小的池中运行,而不仅仅是在我测试的池中运行。因此,我不能依靠特定的设计或功能。它必须知道它在池中的位置,无论是相对于初始位置还是相对于池。我有一个IMU,它是Pololu MiniIMU,但要找到一个带IMU的位移几乎是不可能的任务。

我可以使用什么传感器来完成这项任务?它应该不会很昂贵。 (低于200美元)

坦克尺寸:25x20x2.5米

评论

您正在使用哪个IMU?您是否可以在池中放置标记(也称为基准)(例如AprilTags)?

@Ben没有标记,但是可以使用任何已经存在的标记,例如GPS,WiFi,Cell Tower信号,但是上述信号会在水下衰减。我已经用IMU更新了问题。

谢谢,也请在问题中输入标记信息。在堆栈交换中,最好编辑问题以添加所请求的信息,而不是添加更多评论。评论有助于改善问题和答案,而且分散了注意力,因此我们尝试将其降至最低。如果其中包含回答问题所需的所有信息,则可以删除注释。

游泳池中是否有很多(如果有)标记?例如,如果它是标准的游泳池,则地板上会出现黑线。但是个人泳池不会有太多的痕迹。它有多大?

#1 楼

在水下机器人的水下定位始终是一个问题,因为电磁信号在水中的传播不是很好。我认为,在这种情况下,最好的定位传感器是老式的声纳,它在水中的工作速度要快得多。您可能有四个,然后检测每边的水池壁有多远,然后使用三角剖分算法大致定位您的机器人。您还可以添加一个向下看以估计深度。

评论


$ \ begingroup $
声纳要多少钱?水下声纳模块可用吗?需要多少费用?另外,如果我为声纳提供防水功能,则介质也会改变,因此范围也会改变。它会增加还是减少?减多少
$ \ endgroup $
–daltonfury42
15年6月28日在16:46

$ \ begingroup $
不确定防水时范围会发生变化,但正常范围为5米,sparkfun.com/products/11309
$ \ endgroup $
– Mehdi
15年6月28日在18:20

#2 楼

GPS是陆地上全球定位的主要传感器之一。这不是水下的选择,因为电磁波会很快被吸收。

但是,还有其他选择,它们提供的导航信息在陆地上不那么容易。


大基线(LBL)-是一种基于声纳的方法,其工作原理与GPS非常相似,只是使用了声学功能。为此,您需要以已知间隔ping的应答器。然后,机器人可以根据游程长度间隔来计算其位置。因为计时比GPS容易得多,所以提出自己的解决方案可能是可行的。
超短基线(USBL)-与LBL的工作原理相同,只是发送应答器彼此非常接近(通常是一台设备)。通过这种方式,您可以获得角度和范围的测量结果。精度较差,但结构更紧凑。
多普勒速度测井(DVL)-在多个方向上使用多普勒效应,可为您提供相对于地面的速度。
压力传感器-您可以直接使用它来测量水柱中的深度。
AHRS-基于IMU和Compass,您可以很好地估计自己的方向。

坏消息是基于声纳的方法在您的预算方面远远不够。但是,如果您对此感兴趣,构建基于DIY水听器的本地化方法可能是可行的。绝对应该是一个有趣的经历。

您的替代方案(特别是在游泳池中可行)是光学的。例如,您可以使用外部摄像头跟踪机器人,也可以使用标记(例如Aruco)来获取与已知位置的关系。

#3 楼

如果实际上是在水下,那么网络摄像机如何看待地板上的瓷砖图案? (例如,可以认为它“作弊”,因为它显然会在天然湖泊中失效。)

您可以找到使用此方法的论文,并证明此方法是本文:

Carreras,Marc等人。 “在结构化环境中水下机器人的基于视觉的定位。”机器人与自动化,2003年。会议论文集。 ICRA'03。 IEEE国际会议上。卷1. IEEE,2003年。

评论


$ \ begingroup $
这很大程度上取决于可用的计算资源以及您所指出的楼层布局。并非所有泳池都铺有瓷砖地板
$ \ endgroup $
–koverman47
18年7月18日在15:00

#4 楼

如果您不能使用相机,那么由于资金有限,几乎不可能完成任务。

专业人员使用扫描声纳(如tritech微米)和基于粒子的定位(如[3])基于FastSLAM:[1]。

但是,如果您有水下声学经验,则可以尝试基于USBL想法[2] e的想法来构建自己的定位系统,但是您将与水池本身的反射作斗争。 />
[1] https://www.google.de/search?q=FastSLAM:+A+Factored+Solution+to+the+Simultaneous+...&ie=utf-8&oe=utf-8&rls= org.mozilla:zh-CN:unofficial&client = iceweasel-a&channel = rcs&gws_rd = cr&ei = ZYuKVdjhE4yYsAHK6JiwBA

[2] https://en.wikipedia.org/wiki/Ultra-short_baseline

[3] https://github.com/auv-avalon/uw_localization