예제 #1
0
def make_tower():
    count = 0
    while robot.sense_color() != "":
        count = count + 1
        robot.drive_right()
        robot.drive_right()
    boxes = count

    while boxes > 0:
        robot.drive_left()
        robot.drive_left()
        boxes = boxes - 1

    robot.lift_up()
    robot.gripper_to_open()
    robot.drive_right()
    robot.lift_down()
    robot.gripper_to_closed()

    while boxes < (count - 1):
        boxes = boxes + 1
        robot.lift_up()
        robot.drive_right()
        robot.drive_right()
        robot.gripper_to_open()
        robot.lift_down()
        if boxes != count - 1:
            robot.gripper_to_closed()
예제 #2
0
def pickup_next():
    '''Release the box in gripper (if any) and pick up the one below.
    Assumption: robot is in front of a box/stack; lift is at level 1.'''
    robot.gripper_to_open()
    robot.lift_down()
    robot.gripper_to_closed()
    robot.lift_up()
예제 #3
0
파일: first_test.py 프로젝트: Skyorca/csdn-
def swap_left_mid():
    robot.drive_right()
    robot.lift_up()
    robot.gripper_to_open()
    robot.lift_down()
    robot.gripper_to_closed()
    move()
예제 #4
0
def count_boxes():
    if robot.sense_color() == "":
        return 0
    else:
        robot.lift_up()
        num_above = count_boxes()
        robot.lift_down()
        return 1 + num_above
예제 #5
0
def unstack_tower_of_two():
    # Move to the middle
    right_two_spaces()
    # and do the unstacking manoeuvre
    unstack_to_the_left()
    # -------------Here to do the up-fold-down to initialize the gripper!
    robot.lift_up()
    robot.gripper_to_folded()
    robot.lift_down()
예제 #6
0
def put_down_blocks():
    # Move the lift down, and release the blocks.
    robot.lift_down()
    robot.gripper_to_open()
    # Because there is now a block to the right (the one that we
    # unstacked from), we must do the up-fold-down manoeuvre.
    robot.lift_up()
    robot.gripper_to_folded()
    robot.lift_down()
예제 #7
0
def make_tower(n):
    robot.init(width=2 * n - 1, boxes="flat")
    robot.drive_right()
    robot.lift_up()
    while n > 1:
        pickup_next()
        move_to_next_stack()
        n = n - 1
    robot.gripper_to_folded()
    robot.lift_down()
예제 #8
0
def unstack_tower_of_three():
    # Move to the right-most stack
    right_two_spaces()
    right_two_spaces()
    # and do the unstacking manoeuvre twice
    unstack_to_the_left()
    unstack_to_the_left()
    robot.lift_up()
    robot.gripper_to_folded()
    robot.lift_down()
예제 #9
0
def swap_middle_and_right():
    robot.lift_up()
    move_2steps_right()
    open_down_and_close_up()
    move_2steps_left()
    robot.lift_down()
    robot.gripper_to_open()
    robot.lift_up()
    robot.gripper_to_closed()
    move_2steps_right()
    robot.lift_down()
예제 #10
0
def pickup_and_replace():
    robot.lift_up()
    open_down_and_close_up()
    move_2steps_right()
    open_down_and_close_up()
    move_2steps_left()
    robot.lift_down()
    robot.gripper_to_open()
    robot.lift_up()
    robot.gripper_to_closed()
    move_2steps_right()
    robot.lift_down()
예제 #11
0
def make_tower(n):
    robot.init(width=2 * n - 1, boxes="flat")
    robot.drive_right()
    robot.lift_up()
    i = 0
    while i < n - 1:
        pickup_next()
        move_to_next_stack()
        i = i + 1
    robot.gripper_to_folded()
    robot.lift_down()
    return "Tower complete!"
예제 #12
0
def swap_left_and_middle():
    robot.drive_right()
    robot.lift_up()
    robot.gripper_to_open()
    robot.lift_down()
    robot.gripper_to_closed()
    robot.lift_up()
    robot.drive_right()
    robot.drive_right()
    robot.gripper_to_open()
    robot.lift_down()
    robot.gripper_to_closed()
    robot.drive_left()
    robot.drive_left()
    robot.gripper_to_open()
    robot.lift_up()
    robot.gripper_to_closed()
    robot.drive_right()
    robot.drive_right()
    robot.lift_down()
    robot.gripper_to_open()
    robot.lift_up()
    robot.gripper_to_folded()
    robot.drive_left()
    robot.drive_left()
    robot.drive_left()
    robot.lift_down()
예제 #13
0
def swap_middle_and_right():
    robot.drive_right()
    robot.drive_right()
    robot.gripper_to_open()
    robot.lift_down()
    robot.gripper_to_closed()
    #blue box is in gripper!
    robot.drive_left()
    robot.drive_left()
    robot.gripper_to_open()
    #blue box is in the middle!
    robot.lift_up()
    robot.gripper_to_closed()
    robot.drive_right()
    robot.drive_right()
    robot.lift_down()
    robot.gripper_to_open()
예제 #14
0
def swap_left_and_middle():
    robot.drive_right()
    robot.lift_up()
    robot.gripper_to_open()
    robot.lift_down()
    robot.gripper_to_closed()
    # red box is in gripper!
    robot.lift_up()
    robot.drive_right()
    robot.drive_right()
    robot.gripper_to_open()
    # red box is on the top of green box!
    robot.lift_down()
    robot.gripper_to_closed()
    #green box is in gripper!
    robot.drive_left()
    robot.drive_left()
    #greem box is on the right!
    robot.gripper_to_open()
    robot.lift_up()
    robot.gripper_to_closed()
    robot.drive_right()
    robot.drive_right()
예제 #15
0
def open_down_and_close_up():
    robot.gripper_to_open()
    robot.lift_down()
    robot.gripper_to_closed()
    robot.lift_up()
예제 #16
0
    robot.gripper_to_closed()
    robot.lift_up()

# main program

robot.init(width = 9, boxes = "flat")

# position above first box
robot.drive_right()
robot.lift_up()

# pick up, move right
pickup_next()
move_to_next_stack()

# ...again
pickup_next()
move_to_next_stack()

# ...again
pickup_next()
move_to_next_stack()

# ...again
pickup_next()
move_to_next_stack()

# tower is done, park the robot
robot.gripper_to_folded()
robot.lift_down()
예제 #17
0
def put_down_blocks():
    # Move the lift down, and release the blocks.
    robot.lift_down()
    robot.gripper_to_open()