Skip to main content

패키지 대시 챌린지 - 파이썬

패키지 대시 챌린지의 샘플 레이아웃은 왼쪽 하단 모서리에 로딩 도크, 캔을 놓을 수 있는 세 개의 영역, 그리고 오른쪽 상단 모서리에 클로봇이 있는 시작 영역을 보여줍니다.
패키지 대시 챌린지(크기 조정 불가)

패키지 대시 챌린지

이 챌린지에서는 로봇이 패키지를 집어 최대한 빨리 적재 도크로 가져오도록 프로그래밍해야 합니다!

도전 규칙:

  • 로봇은 시작 구역에서 도전을 시작해야 합니다.
  • 패키지(알루미늄 캔)는 책, 클로봇의 집게발, 로딩 도크에만 접촉할 수 있습니다.
    • 창고 바닥에 패키지가 떨어진 경우 필드를 재설정하고 다시 시작해야 합니다.
  • 각 실행 시간은 로봇이 움직이는 즉시 시작됩니다.
  • 마지막 패키지가 로딩 도크에 떨어지는 순간 시간은 멈춘다.
  • 필드를 재설정할 때는 모든 것이 처음 시작했을 때의 정확한 위치로 돌아가야 합니다.
  • 즐거운 시간 보내세요!
     

교사 팁 아이콘 교사 팁

  • 창고에 대한 배경 스토리나 목적을 만들어 참여도를 높이세요! 어떤 종류의 창고인가요? 창고에는 어떤 종류의 패키지가 있나요? 창고의 주인은 누구입니까?
  • 학생들이 캔을 더 효율적으로 운반할 수 있는 다양한 경로나 전략을 만들도록 합니다.
  • 이 챌린지의 우승자를 결정하기 위해 완료 시간만 비교하는 것이 아니라(경쟁적인 방식으로 구성하려는 경우) 학생들이 다른 팀의 솔루션을 고려할 수 있도록 사용된 탐색 기술도 비교하세요.

교사 도구 상자 아이콘 교사 도구 상자 - 솔루션

학생을 평가하기 위한 프로그래밍 평가 기준은 에서 확인할 수 있습니다.

이 문제에 대한 가능한 해결책 중 하나는 다음과 같습니다. 해결책은 로봇의 시작 위치와 선택한 경로에 따라 달라질 수 있습니다. 모든 패키지를 옮기는 데에는 여러 가지 경로가 있습니다.

# 프로젝트 코드

시작 # Claw 모터를 안전하게 실행하고 첫 번째 패키지를 픽업합니다
claw_motor.set_timeout(2, seconds)
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.drive_for(FORWARD, 215, MM)
claw_motor.spin_for(FORWARD, 120, DEGREES)

# 첫 번째 패키지를 내려놓기 위해 로딩 도크로 이동합니다
drivetrain.drive_for(REVERSE, 110, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 920, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 2300, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 750, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, DEGREES)

# 두 번째 패키지를 집어 올리세요
drivetrain.drive_for(REVERSE, 200, MM)
drivetrain.turn_for(LEFT, 170, DEGREES)
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 2300, MM)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(FORWARD, 120, DEGREES)

# 두 번째 패키지를 내려놓기 위해 로딩 도크로 이동합니다
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 960, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, DEGREES)

# 세 번째 패키지를 픽업합니다
drivetrain.drive_for(REVERSE, 150, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 490, MM)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(FORWARD, 120, DEGREES)

# 세 번째 패키지를 내려놓기 위해 로딩 도크로 운전하세요
drivetrain.drive_for(REVERSE, 490, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 150, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120도)