Завдання з доставки: огляд модуля
Робот-кур’єр повинен доставляти пакунки з одного місця в інше.
Вступ
Щоб допомогти людям, які потребують допомоги в умовах поточної пандемії, ви та ваші колеги вирішили створити автономного робота-кур’єра.
Ваш робот буде забирати продукти харчування та інші товари і доставляти їх до місць проживання з мінімальним контактом, щоб допомогти боротися з поширенням коронавірусу.
Звичайно, повнорозмірна версія доведеться почекати, поки ви не отримаєте мільйони доларів інвестицій для своєї компанії з робототехніки, але це не означає, що ви не можете розважитися, мріючи про масштабну модель тут.
Ваш робот матиме руку для підйому та перенесення «мішків» з товарами та датчики, які допоможуть йому орієнтуватися в простій мережі «вулиць». Щоб трохи ускладнити завдання, не всі товари, які потрібно доставити, завжди розміщуються в правильному місці для зручного забирання, а іноді дорожні роботи можуть перекривати шлях. Але ви все одно повинні зробити так, щоб це працювало!
Світ розраховує на вас! Чи зможете ви це зробити?
Цілі
Фінальний проект — це шанс для вас і ваших колег по команді продемонструвати, що ви можете застосувати концепції та стратегії, отримані під час курсу, для вирішення конкретного завдання. Ви застосуєте теоретичні знання до проектування вашої системи та використаєте цілеспрямоване тестування для поліпшення її продуктивності. Проект завершиться демонстрацією, під час якої ви доведете продуктивність вашого робота. Щоб допомогти нам краще зрозуміти вашу систему та процес, ви також підготуєте звіт, в якому опишете розробку системи та оціните, наскільки добре вона відповідала вашим цілям.
Успішна команда спроектує, побудує та продемонструє робота, який може виконати заданий набір завдань. Щоб досягти успіху, вам потрібно:
Визначити ключові критерії продуктивності та розробити стратегію для досягнення цілей вашої команди, Визначити ключові фактори, що впливають на продуктивність, та використовувати аналіз і тестування для їх конкретизації, Розробити та застосувати стратегію тестування для забезпечення продуктивності, Оцінити продуктивність системи та Описати систему та ваш процес проектування.
Виклик
Ваше завдання полягає в тому, щоб запрограмувати робота так, щоб він підбирав мішки з вантажем із відомих і невідомих місць і доставляв їх до визначених пунктів призначення. Завдання побудовано таким чином, що завдання мають різний рівень складності. Наприклад, знаходження мішків, що знаходяться у вільному доступі, і їх підбирання принесе більше очок, так само як і вміння об’їжджати будівельний знак. Оскільки вам доведеться виконувати кілька пробіжок, надійність буде мати вирішальне значення.
Рисунок 1: Схема арени. Окремі арени можуть відрізнятися.
Сумки
Від вас очікується, що ви зробите свої власні сумки для доставки, наприклад, з паперу або картону та скріпок. Ви повинні підготувати щонайменше дві сумки для демонстрації. Ви можете «переробляти» їх у міру проходження демонстрації. Ось приклад простої у виготовленні сумки, яку можна зробити з одноразового стаканчика для напоїв, який можна знайти в ресторані.
Рисунок 2: Приклад сумки для доставки
Колекція
Більшість мішків буде розміщено на лінії в кінці головної дороги. Ви можете розмістити шматок скотчу біля зони підбору, щоб позначити, де вона починається, але мішки будуть розміщені на різній відстані від скотчу.
Щоб заробити очки за збір мішка з вільної зони, ви повинні продемонструвати, що його положення може бути довільним у межах вільної зони (за винятком того, що ви можете стояти обличчям до мішка в будь-якому положенні, яке вважаєте найбільш вигідним).
Зони доставки
Кожна зона доставки або платформа не може бути більшою за 10 см у будь-якому горизонтальному вимірі. Платформи для зон доставки будуть позначені на землі. Ви можете зробити їх з картону або будь-якого іншого матеріалу. Щоб заробити очки, кожен контейнер повинен бути розміщений у зоні доставки і залишений там (у вертикальному положенні) достатньо довго, щоб довести свою стійкість.
Операція
Ви почнете з тим, що ваш робот буде знаходитися на головній дорозі, а сумка – у зоні забирання. За командою (натисканням будь-якої кнопки на роботі) ваш робот поїде до зони забирання, забере сумку і доставить її за вказаною адресою, яка буде визначена натисканням кнопки (наприклад, «GP20» означає доставку за адресою А тощо). Потім ваш робот повернеться до вихідної точки, зупиниться і буде чекати наступної команди.
Після кожної доставки ви покладете інший мішок у зону завантаження і повторите процес, натиснувши кнопку, щоб вказати на іншу доставку. Ви можете переробляти мішки скільки завгодно.
У двох випадкових точках демонстрації ваш інструктор розмістить дорожній знак на головній дорозі на 30 секунд, і ви не отримаєте бали за будь-яку доставку, під час якої ваш транспортний засіб зіткнеться із знаком.
Випробування триватиме 5 хвилин. Ви можете використовувати будь-які датчики, які ви вивчали на цьому занятті, щоб виконати завдання. Важливим буде слідування лінії, але для самостійного збору мішків, що знаходяться у вільному доступі, вам знадобиться певна креативність.
[Відео зразкового запуску буде доступне незабаром!]
Підрахунок очок
[ Налаштуйте значення балів у часі ]
Під час забігу ваша команда повинна доставити якомога більше вантажу, включаючи сумки «вільного вигулу». Очки будуть нараховуватися наступним чином:
Ви отримаєте 5 очок за кожну посилку, доставлену за адресами А або С. Однак ви можете отримати максимум 50 очок (що відповідає 10 посилкам) за кожну адресу доставки; тобто, ви повинні доставити посилки за всіма трьома адресами, щоб отримати максимальну кількість очок. Ви отримаєте 5 додаткових балів за кожну сумку з вільним діапазоном (максимум 20 балів), доставлену за адресою B. Ваш загальний бал буде помножений на кількість унікальних адрес, за якими ви доставили сумки. Тобто, якщо ви доставили 1 сумку за адресою A і 1 сумку за адресою B, ваш кінцевий бал буде 2 * (5+5) = 20 балів. Якщо ви отримали додатковий бал за сумку з вільного випасу, ваша загальна кількість балів складе 3 * (5+5+5) = 45 балів Бали не нараховуються за доставку, під час якої робот зачіпає дорожній знак. Ви втратите 2 бали за кожний раз, коли доведеться торкатися робота (наприклад, щоб повернути його на лінію), крім випадків, коли це необхідно для визначення зони доставки на початку кожної доставки.
Покриті стандарти (NGSS та CSTA):
HS-ETS1-2 Розбийте складну реальну проблему на менші, більш керовані проблеми, кожну з яких можна вирішити за допомогою наукових та інженерних принципів.
HS-ETS1-3 Оцініть рішення складної реальної проблеми на основі пріоритетних критеріїв та компромісів, що враховують низку обмежень, включаючи вартість, безпеку, надійність, естетику та технічне обслуговування, а також соціальні, культурні та екологічні наслідки.
3A-AP-16 Проектуйте та ітеративно розробляйте обчислювальні артефакти для практичних цілей, особистого самовираження або для вирішення соціальних проблем, використовуючи події для ініціювання інструкцій.
3A-AP-17 Розкладайте проблеми на менші складові за допомогою систематичного аналізу, використовуючи такі конструкції, як процедури, модулі та/або об’єкти.
3B-CS-02 Проілюструйте способи, якими обчислювальні системи реалізують логіку, введення та виведення даних за допомогою апаратних компонентів.
3B-AP-10 Використовувати та адаптувати класичні алгоритми для вирішення обчислювальних задач.
3B-AP-11 Оцініть алгоритми з точки зору їх ефективності, правильності та зрозумілості.
3B-AP-15 Проаналізуйте великомасштабну обчислювальну задачу та визначте узагальнені закономірності, які можна застосувати для її вирішення.
3B-AP-16 Продемонструйте повторне використання коду, створюючи програмні рішення з використанням бібліотек та API..