<p>您将得到一条<code>yaw</code>的消息和一条<code>pitch</code>的消息,因为您没有采取任何措施来阻止这种情况的发生,您可以通过将<code>if</code>替换为<code>elif</code>来打印一条消息,如下所示:</p>
<pre><code>if pitch > 0 and pitch < 180 :
print "forward"
elif pitch > -180 and pitch < 0 :
print "backward"
elif yaw < 0 and yaw > -180 :
print "left"
elif yaw < 180 and yaw > 0 :
print "right"
else :
print "stable"
</code></pre>
<p>然而,这不太可能达到你想要的效果,因为你真的想要一个1度的俯仰角和175度的偏航角组合成“向前”吗?相反,您可能希望比较值的大小(<code>abs(pitch)</code>将返回大小),然后将响应基于具有更高大小的值,如下所示:</p>
<pre><code>if pitch == 0 and yaw == 0 :
# Eliminate the stable option first to cut down on comparisons
print("stable")
elif abs(pitch) > abs(yaw) :
# If we're pitching more than yawing, only give the pitch message
if pitch > 0 :
print "forward"
else :
print "backward"
else :
# The other options have been eliminated, so we must be yawing more than pitching
if yaw < 0 :
print "left"
else :
print "right"
</code></pre>
<p>(我假设你的角度保持在<code>-180 < theta <= 180</code>范围内;如果不是,你可能应该这样做)</p>
<p>尽管您可能还需要一组混合消息,用于在两个方向上都有重要输入的情况,因此如果偏航为90,俯仰为90,则会报告类似于“向右前进”的消息。你知道吗</p>