Skip to content

Timingproblem i control.

Fungerar att svänga 90 grader med följande kod:

from control import Control
from perception import Perception
from time import sleep

control = Control("nao5")
perception = Perception("nao5")


INPUT_SLEEP_TIME = 0.1
walk_forward = 6
walk_left = 4.2

def wait_until_head_is_touched(perc):
    #print("Fore while loop")
    while not perc.is_head_button_pressed():
        #print("I loopen")
        sleep(INPUT_SLEEP_TIME)
        #print("Efter while loop")

    wait_until_head_is_touched(perception)
control.start_robot()
control.stand_up()
control.walk_forward(1.0)
sleep(walk_forward)
control.stop_walking()
#control.turn_head_to(1.76 , -0.1, 0.7)
#sleep(0.5)
#control.stop_turning_head()
control.turn_head_to(-1 , -0.3, 0.7)
sleep(1)
control.stop_turning_head()
#control.say_blocking("Start turning")
sleep(1)
control.turn_left(0.8)
sleep(3)
#control.say_blocking("Stop turn left")
control.stop_turning()
control.walk_forward(1)
control.turn_left(0.6)
sleep(walk_left)
#control.say_blocking("Stop walk diagonally")
control.stop_turning()
control.stop_walking()
wait_until_head_is_touched(perception)
control.sit_down()
control.turn_motors_off()

Fungerar inte med följande (enda raden som är ändrad är markerad med #):

from control import Control
from perception import Perception
from time import sleep

control = Control("nao5")
perception = Perception("nao5")


INPUT_SLEEP_TIME = 0.1
walk_forward = 6
walk_left = 4.2

def wait_until_head_is_touched(perc):
    #print("Fore while loop")
    while not perc.is_head_button_pressed():
        #print("I loopen")
        sleep(INPUT_SLEEP_TIME)
        #print("Efter while loop")

    wait_until_head_is_touched(perception)
control.start_robot()
control.stand_up()
control.walk_forward(1.0)
sleep(walk_forward)
control.stop_walking()
#control.turn_head_to(1.76 , -0.1, 0.7)
#sleep(0.5)
#control.stop_turning_head()
control.turn_head_to(-1 , -0.3, 0.7)
sleep(1)
control.stop_turning_head()
#control.say_blocking("Start turning")
sleep(0.1)   ############################################
control.turn_left(0.8)
sleep(3)
#control.say_blocking("Stop turn left")
control.stop_turning()
control.walk_forward(1)
control.turn_left(0.6)
sleep(walk_left)
#control.say_blocking("Stop walk diagonally")
control.stop_turning()
control.stop_walking()
wait_until_head_is_touched(perception)
control.sit_down()
control.turn_motors_off()