0

私は落書きロボットを使用して自作の迷路をナビゲートしています (機能が動作するようになったら改善します。ビデオにあるものはテスト目的のためだけです)。

迷路

私は当初、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

上記のコードのさまざまなバリエーションを使用しています。ターンをキューまたはスタックに実装したいだけですが、その方法がわかりません。

ありがとう

4

0 に答える 0