如何使用加速度计识别反手和正手击球?

时间:2015-04-18 05:01:38

标签: accelerometer gyroscope

加速度计有三个值:x,y,z。

让我们想象一个球拍有一个加速度计。如果我把球拍面朝上,我知道x,y和z的方向在哪里。但是,如果我翻转球拍并将其放在一边。 x,y,z的值是相反的方向。

换句话说,如果我用反手将球击向x方向,我可以获得正x值或负x值。 (这取决于我是否翻转球拍[球拍有两张脸])。

我的问题是传感器怎么能告诉我,我是用正手击球而不是正手击球,因为我可以得到正手和反手相同的加速度计值。

谢谢你, 麦

3 个答案:

答案 0 :(得分:2)

编辑:根据@ Sami的评论改变了主意:)

想象一下X和Y轴在球拍线的平面上(比如说X是沿着手柄的线,Y是向上/向下),而Z是在击球的方向。然后大部分加速时你摆动&命中将在Z轴(+或 - 取决于球拍的哪个面击中球);如果你以弧形摆动,那么会有一点X轴加速度,但无论哪个面都被击中,它总是在同一个方向上。向上有恒定的Y轴加速度。

enter image description here

因此,您可以查看加速度计的Z值以确定击中哪个脸部,并且您可以查看Y值以判断球拍的持续方向。从那以后你就可以知道前面是否有'或者'返回' (相对于球拍朝向的方式)被击中,因此判断正在进行正手击球还是反手击球。

当然,您还必须知道该球员是右手还是左手:)

对于给定的手性,您可以按如下方式计算挥杆类型:

enter image description here

对于其他手性,结果将会逆转。 ' +'和' - '值与您的加速度计的安装方式有关,因此您需要进行校准。

答案 1 :(得分:1)

这里有两个坐标系:加速度计和世界。加速度计在其世界视图中将具有固定的x / y / z方向,但它们会根据方向相对于世界坐标发生变化。

如果您按原样使用加速度计的值,那么您可能会在击中时获得正或负的冲动。但是当你将它们转换成世界的坐标系时 - 也就是说,向下总是朝向地球的中心 - 你将总是得到相反的反手值,而正手则相反。

让我们假设加速计的x方向是网的法线,z平行于手柄,当球拍处于正常的侧向位置时,y是“向上”。

因为在网球比赛中球拍基本上是在一个平面上(例如,你不打网面朝下),除非你在做头顶(在这种情况下我认为反手是不可能的) ,当球拍静止时,你总是会指向1或-1。最简单(但不是最准确!)的方法是检查y具有什么符号并相应地改变x。这样你就不会得到精确的向量,但你会得到反手或正手的信息。

这个问题还在于你必须在击球之前跟踪球拍,因为如果命中不是完全水平(很少是),当球拍在击球时向上或向下移动时y加速也会改变并且在撞击时不会显示球拍的方向。

为了获得更准确的读数,您必须确定坐标系之间的差异并相应地旋转。

答案 2 :(得分:0)

正手击球, - Y具有负重力加速度值,z具有任何值(无论是正还是负)

对于反手击球, - 如果y具有正重力加速度值且z具有任何值(无论是正还是负)