IT Academy
Справочник курса

Робототехника и 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 (результат воспроизводим и объяснён). Если обязательный сценарий не работает, вернитесь к нему независимо от общей суммы. Это рубрика самопроверки: сайт не исполняет присланный код и не выдаёт автоматическую оценку проекта.