Робототехника и ROS 2
Все объяснения, задачи и лабораторная в одном месте.
Можно сохранить страницу в PDF через печать браузера. Для печати разборы ответов раскрываются автоматически.
1. Frames, transforms и kinematics
Объяснение
Координатная система задаёт начало и оси; transform переводит координаты между системами. Порядок поворота и переноса важен. Ошибка единиц или направления оси приводит к неверному движению.
Задача для самостоятельного решения
Точка x=1 в системе датчика, датчик сдвинут на +2 без поворота. Где точка в базе?
Показать разбор ответа
x=3. При повороте сначала нужно применить соответствующую матрицу; простое сложение уже недостаточно.
2. Sensors, calibration и sensor fusion
Объяснение
Калибровка оценивает систематическую ошибку, фильтрация снижает шум. Sensor fusion объединяет данные с учётом неопределённости. Частый датчик не обязательно точнее редкого.
Задача для самостоятельного решения
Почему нельзя просто усреднить GPS и одометрию без модели?
Показать разбор ответа
У них разные ошибки, частоты и системы координат. Нужны синхронизация, transform и оценка доверия к измерениям.
3. ROS 2 nodes, topics, services и actions
Объяснение
ROS 2 node выполняет роль компонента; topic передаёт поток, service — запрос/ответ, action — длительную задачу с feedback и отменой. QoS должен быть совместим у сторон.
Задача для самостоятельного решения
Что подходит для команды «проехать маршрут»?
Показать разбор ответа
Action: задача длительная, нужен прогресс и возможность отмены. Topic удобнее для непрерывного потока сенсорных данных.
4. Localization и mapping
Объяснение
Localization оценивает положение в карте, mapping строит карту. SLAM решает обе связанные задачи. Неопределённость растёт без надёжных наблюдений, а loop closure корректирует накопленный дрейф.
Задача для самостоятельного решения
Почему одометрия постепенно расходится с реальностью?
Показать разбор ответа
Ошибки измерения и проскальзывание интегрируются со временем. Нужны внешние наблюдения и модель неопределённости.
5. Path planning и control
Объяснение
Planner ищет путь, controller превращает его в команды движения. Геометрически свободный путь может быть недостижим с ограничениями поворота и скорости. Safety-ограничения должны действовать независимо от качества плана.
Задача для самостоятельного решения
Почему робот не может мгновенно пройти угол 90°?
Показать разбор ответа
Есть ограничения ускорения, радиуса поворота и сцепления. Траектория должна учитывать динамику, а контроллер — соблюдать пределы.
6. Simulation, safety и system integration
Объяснение
Симуляция ускоряет эксперименты, но отличается от физического мира. Проверка включает шум, задержки и аварийную остановку. Переход на оборудование проводят постепенно и под контролем.
Задача для самостоятельного решения
Что проверить перед первым движением реального робота?
Показать разбор ответа
Направления приводов, лимиты скорости, рабочий stop, свободную область и корректность датчиков. Успех симуляции не доказывает электрическую и механическую корректность.
Лабораторная работа
Подготовка
Математическая модель, Python 3; физическое движение не требуется.
Учебный пример
import math
point=(1,0)
angle=math.pi/2
rotated=(math.cos(angle)*point[0]-math.sin(angle)*point[1],
math.sin(angle)*point[0]+math.cos(angle)*point[1])
world=(rotated[0]+2,rotated[1]+3)
print(tuple(round(x,3) for x in world))Как работает пример и что ожидать
Результат (2,4): сначала поворот на 90°, затем перенос (2,3). Если поменять порядок, получится другая точка. Координаты и углы должны иметь явно указанную систему и единицы.
Итоговая работа
Соберите робота в симуляции с topics датчиков, transform tree и action движения. Добавьте шум, задержку и отказ датчика. Докажите ограничение скорости и остановку до любого перехода на оборудование.
Проверка результата
1. Опишите исходные данные и условия запуска, чтобы другой человек мог повторить работу.
2. Приложите результат обычного сценария и сравните его с ожидаемым.
3. Проверьте неверный вход, граничный случай и отказ зависимости, если она есть.
4. Объясните выбранное решение и известное ограничение.
5. Сохраните исправления после самопроверки вместе с примером, который раньше не работал.
Как оценить работу
По каждому пункту поставьте 0 (не выполнено), 1 (выполнено с пробелами) или 2 (результат воспроизводим и объяснён). Если обязательный сценарий не работает, вернитесь к нему независимо от общей суммы. Это рубрика самопроверки: сайт не исполняет присланный код и не выдаёт автоматическую оценку проекта.