План на курса
Седмица 01
Въведение
- Какъв прави робота умна?
Физически vs виртуални роботи
- Умни роботи, умни машини, чувстващи машини и автоматизация на роботски процеси (RPA), и др.
Ролята на изкуствен интелигент (AI) в роботиката
- Отвъд "if-then-else" и машинното обучение
- Алгоритмите зад AI
- Машинно обучение, компютърно зрение, обработка на естествен език (NLP), и др.
- Когнитивна роботика
Ролята на големите данни в роботиката
- Вземане на решения на базата на данни и модели
Облака и роботиката
- Възможност за свързване на роботиката с IT
- Създаване на по-функционални роботи, които имат достъп до повече информация и могат да сътрудничат
Случайно изследване: Индустриални роботи
- Механични роботи
- Baxter
- Роботи в ядрени съоръжения
- Детекция и защита от радиация
- Роботи в ядрени реактори
- Детекция и защита от радиация
Хардуерни компоненти на робота
- Мотори, сензори, микроконтролъри, камери, и др.
Общи елементи на роботите
- Машинно зрение, разпознаване на глас, синтез на глас, сензиране на близост, сензиране на налягане, и др.
Разработване на платформи за програмиране на робот
- Отворени и комерсиални платформи
- Robot Operating System (ROS)
- Архитектура: работно пространство, теми, съобщения, услуги, възли, actionlibs, инструменти, и др.
Езици за програмиране на робот
- C++ за ниво контрол
- Python за оркестрация
- Програмиране на възли в ROS на Python и C++
- Други езици
Инструменти за симулиране на физически робот
- Комерсиални и отворени 3D симулации и визуализация на софтуер
Седмица 02
Подготовка на средата за разработване
- Инсталиране и настройка на софтуер
- Полезни пакети и утилити
Случайно изследване: Механични роботи
- Роботи в ядрената технология
- Роботи в екологичните системи
Програмиране на робота
- Програмиране на възел в Python и C++
- Разбиране на възел в ROS
- Съобщения и теми в ROS
- Парадигма за публикуване/подписване
- Проект: Бум & Го с реален робот
- Отстраняване на проблеми
- Симулиране на роботи с Gazebo / ROS
- Ръмове в ROS и промени на референции
- 2D обработка на информация от камери с OpenCV
- Обработка на информация от лазер
- Проект: Безопасно следене на обекти по цвят
- Отстраняване на проблеми
Седмица 03
Програмиране на робота (Продължение...)
- Услуги в ROS
- 3D обработка на информация от RGB-D сензори с PCL
- Карти и навигация с ROS
- Проект: Търсене на обекти в средата
- Отстраняване на проблеми
Програмиране на робота (Продължение...)
- ActionLib
- Разпознаване на глас и генериране на глас
- Контрол на роботски ръце с MoveIt!
- Контрол на роботски шия за активно зрение
- Проект: Търсене и събиране на обекти
- Отстраняване на проблеми
Тестиране на вашия робот
- Единично тестиране
Седмица 04
Увеличаване на възможностите на робота с дълбоко обучение
- Перцепция – зрение, аудио и хаптика
- Представяне на знание
- Разпознаване на глас чрез NLP (обработка на естествен език)
- Компютърно зрение
Бърз курс по дълбоко обучение
- Искуствени невронни мрежи (ANNs)
- Искуствени невронни мрежи vs. биологични невронни мрежи
- Предишни невронни мрежи
- Функции на активация
- Обучение на искусствени невронни мрежи
Бърз курс по дълбоко обучение (Продължение...)
- Модели на дълбоко обучение
- Конволюционни мрежи и рекурентни мрежи
- Конволюционни невронни мрежи (CNNs или ConvNets)
- Конволюционен слой
- Слой за групиране
- Архитектура на конволюционни невронни мрежи
Седмица 05
Бърз курс по дълбоко обучение (Продължение...)
- Рекурентни невронни мрежи (RNN)
- Обучение на RNN
- Стабилизиране на градиентите по време на обучение
- Дълги къси паметни мрежи
- Платформи и софтуерни библиотеки за дълбоко обучение
- Дълбоко обучение в ROS
Използване на големи данни в робота
- Концепции за големи данни
- Подходи към анализ на данни
- Инструменти за големи данни
- Разпознаване на модели в данните
- Упражнение: NLP и компютърно зрение на големи набори данни
Използване на големи данни в робота (Продължение...)
- Разпределено обработване на големи набори данни
- Съществуването и взаимовлият на големите данни и роботиката
- Роботът като генератор на данни
- Сензори за измерване на разстояние, позиция, визуални, тактилни сензори и други модалности
- Разбиране на сензорни данни (цикъл на чувстване-планиране-действие)
- Упражнение: Захвърляне на потокови данни
Програмиране на автономен робот с дълбоко обучение
- Компоненти на робота с дълбоко обучение
- Настройка на симулатора на робот
- Запускане на CUDA-ускорена невронна мрежа с Cafe
- Отстраняване на проблеми
Седмица 06
Програмиране на автономен робот с дълбоко обучение (Продължение...)
- Разпознаване на обекти в фотографии или видеопотокове
- Осигуряване на компютърно зрение с OpenCV
- Отстраняване на проблеми
Анализ на данни
- Използване на робота за събиране и организиране на нови данни
- Инструменти и процеси за разбиране на данните
Разработване на робот
- Преход от симулиран робот към физически хардуер
- Разработване на робота в физическия свят
- Мониторинг и обслужване на роботите в полето
Осигуряване на робота
- Предотвращане на неавторизирано манипулиране
- Предотвращане на хакери от прочитане и крадене на чувствителни данни
Създаване на робот съвместно
- Създаване на робот в облака
- Присъединяване към роботската общност
Бъдещо развитие на роботите в науката и енергийния сектор
Резюме и заключение
Изисквания
- Опит в програмиране на C или C++
- Опит в програмиране на Python (полезно, но не задължително; може да се преподава като част от курса)
- Опит с командния ред на Linux
Целева аудитория
- Разработчици
- Инженери
- Учени
- Техници
Отзиви от потребители (1)
С чувство, че получавам основните умения, които ми трябва, за да разбера как се събира ROS и как да структурирам проекти в него.
Dan Goldsmith - Coventry University
Курс - ROS: Programming for Robotics
Машинен превод