私は落書きロボットを使用して自作の迷路をナビゲートしています (機能が動作するようになったら改善します。ビデオにあるものはテスト目的のためだけです)。
私は当初、getObstacle センサーだけでロボットを左右に動かそうとしました。思ったように左にも右にも曲がりませんでした。そこで、スタックかキューを使おうと考えています。
ロボットに言いたい
if(getObstacle(1) <=6000): # once sensor reaches 6000, it will stop doing the command
forward(1,0) # will move forward as long as getObstacle(1) is less than 6000
次に、最初の障害物を検出したら、左折して前進します
その後、別の障害物を検出したら、右に曲がります。
私は基本的に、迷路の左折と右折をマッピングし、事前に回るタイミングを落書き者に伝えたいと考えています。
最初に壁を感知したとき = 左に曲がり、次に進む
壁を 2 回感知したら、右に曲がり、次に進みます。
このコードをスタックまたはキューに実装するにはどうすればよいですか?
私が今持っているコードは純粋にセンサーに基づいており、信頼性がありません。
これが私が取り組んでいるものの例です:
def main():
setIRPower(135)
while True:
left = getObstacle(0)
center = getObstacle(1)
right = getObstacle(2)
# 2 feet per 1 second at 1 speed
if (center <= 6000):
forward(0.5, 0.3)
elif (center >= 6000 and right > left): #if right sensor detects value higher than left
turnLeft(1, .55) #left turn
else:
turnRight(1, .55) #otherwise, turn right
上記のコードのさまざまなバリエーションを使用しています。ターンをキューまたはスタックに実装したいだけですが、その方法がわかりません。
ありがとう