План на курса
Седмица 01
Ден 01
Въведение
- Какво прави робота умна?
Физически vs Виртуални Роботи
- Умни роботи, умни машини, чувствителни машини и автоматизация на роботски процеси (RPA) и т.н.
Ролята на изкуствения интелигент (AI) в роботика
- Овладяване на "ако-тогава-иначе" и обучаващите машини
- Алгоритмите зад AI
- Машинно обучение, компютърно зрение, обработка на естествени езици (NLP) и т.н.
- Когнитивна роботика
Ден 02
Ролята на големите данни в роботика
- Вземане на решения на основата на данни и шаблони
Облака и роботика
- Връзка между роботика и информационни технологии
- Създаване на по-функционални роботи, които имат достъп до повече информация и могат да сътрудничат
Случайно изследване: Промишлени роботи
- Механични роботи
- Baxter
- Роботи в ядрени съоръжения
- Детекция и защита от радиация
- Роботи в ядрени реактори
- Детекция и защита от радиация
Ден 03
Хардуерни компоненти на робота
- Мотори, сензори, микроконтролъри, камери и т.н.
Общи елементи на роботите
- Машинно зрение, разпознаване на глас, синтез на реч, сензиране на близост, сензиране на налягане и т.н.
Ден 04
Фреймворки за програмиране на робот
- Отворени и комерсиални фреймворки
- Robot Operating System (ROS)
- Архитектура: работно пространство, теми, съобщения, услуги, възли, ActionLibs, инструменти и т.н.
Езици за програмиране на робот
- C++ за контрол на ниско ниво
- Python за оркестрация
- Програмиране на възли на ROS в Python и C++
- Други езици
Ден 05
Инструменти за симулиране на физически робот
- Комерсиални и отворени 3D симулационни и визуализационни софтуерни решения
Инструменти за проектиране на физичните характеристики на робот
- Комерсиални и отворени CAD софтуерни решения
Случайно изследване: Механични роботи
- Роботи в ядрената технология
- Роботи в екологични системи
Седмица 02
Ден 06
Кратък курс по Python
- Инсталиране и настройка на софтуер
- Полезни пакети и утилити
- Работа с структури на данни в Python, оператори, цикли, условни изрази, функции, методи и т.н.
- Написване на примерен програмен код
- Екипен проект
Ден 07
Подготовка за разработка на робот
- Настройка на разработващото оокружение (например, Arduino IDE)
- Разглеждане на синтаксиса на езика Arduino (C/C++)
- Кодиране, компилиране и качване към микроконтролера
- Монтаж на хардуерните компоненти на робот на база Arduino
Ден 08
Работа с компоненти на Arduino
- Аналогови сензори
- Дигитални сензори
Работа с комуникационни модули на Arduino
- Bluetooth модули
- Wi-Fi модули
- RFID модули
- I2C и SPI
- Мобилен интернет
Ден 09
Конструиране на робот
- Планиране на характеристиките и функционалностите на робота
- Реализация на движението на робота
Екипен проект
- Обсуждане и преглед
Ден 10
Контролиране на робота
- Реализация на контролера
- Връзка с робота (с кабел и безжично)
Екипен проект
- Обсуждане и преглед
Седмица 03
Ден 11
Програмиране на робота
- Симулиране на робот с Gazebo / ROS
- Разбиране на възел в ROS
- Програмиране на възел в Python и C++
- Съобщения и теми в ROS
- Парадигма на публикуване/подписване
Екипен проект
- Отказ и отидете с истински робот
- Обсуждане и преглед
Ден 12
Програмиране на робота (продължение...)
- Рамки в ROS и промяна на референции
- 2D обработка на информация от камери с OpenCV
- Обработка на информация от лазер
Екипен проект
- Сигурно следене на обекти по цвят
- Обсуждане и преглед
Ден 13
Тестиране на робота
- Инструменти за тестване на кода
- Едино тестване
- Създаване на тестов набор
- Автоматизация на тестовете
- Отстраняване на проблеми
Екипен проект
- Сигурно следене на обекти по цвят
- Обсуждане и преглед
Ден 14
Програмиране на робота (продължение...)
- Услуги в ROS
- 3D обработка на информация от RGB-D сензори с PCL
- Карти и навигация с ROS
Ден 15
Програмиране на робота (продължение...)
- Завършване на задачи с ActionLib
Екипен проект
- Търсене на обекти в околната среда
Седмица 04
Ден 16
Програмиране на робота (продължение...)
- Завършване на задачи с ActionLib
Ден 17
Програмиране на робота (продължение...)
- Разпознаване на реч и генериране на реч
- Отстраняване на проблеми
Екипен проект
- Контролиране на робот с глас
Ден 18
Програмиране на робота (продължение...)
- Контролиране на роботски ръце с MoveIt!
- Контролиране на роботска вратовръзка за активно зрение
- Отстраняване на проблеми
Екипен проект
- Търсене и събиране на обекти
Ден 19
Разработване на робота
- Разработване на робот в физическия свят
- Наблюдение и обслужване на роботи в полеви условия
- Използване на мобилно приложение за контролиране на робот
Сигурност на робота
- Предотвратяване на несанкционирано вмешателство
- Предотвратяване на хакери от преглед и кражба на чувствителна информация
Ден 20
Анализ на данни
- Събиране и организиране на данните, генерирани от робота
- Разбиране на данните чрез визуализационни инструменти и процеси
Създаване на робот колективно
- Създаване на робот в облака
- Създаване на мобилно приложение за взаимодействие с вашия робот
- Присъединяване към роботското общество
Будущото за роботите в науката и енергийния сектор
Резюме и заключение
Изисквания
- Опит в програмиране на C или C++
- Опит в програмиране на Python (полезно, но не задължително; може да бъде преподадено като част от курса)
- Опит с командния ред на Linux
Целева аудитория
- Разработчици
- Инженери
- Учени
- Техници
Отзиви от потребители (1)
С чувство, че получавам основните умения, които ми трябва, за да разбера как се събира ROS и как да структурирам проекти в него.
Dan Goldsmith - Coventry University
Курс - ROS: Programming for Robotics
Машинен превод