МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ Н.Э. БАУМАНА | Дмитровский филиал | English


Регистрация и вход в систему

   Вход в систему

   Регистрация

   Поменять пароль

   Выход из системы

Общие сведения о функционально-моделирующем стенде

   Принцип действия

   Состав

   Программное обеспечение

   Моделирующая система реального времени

   Пульт управления манипулятором

   Система избегания столкновений

   Система подготовки миссий

   Управление исполнительными устройствами

   Обработка внешних воздействий

   Средства оценки операторов

   Исполнительные устройства

   Промышленные роботы

   Трехпальцевый центрирующий схват

   Очувствленная кисть

   Системы очувствления

   Системы технического зрения

   Система измерения сил и моментов

   Тактильные сенсоры кисти

   Обзорные камеры

   Органы управления

Видео

Удаленное управление функционально-моделирующим стендом

   Методика удаленного управления

   Схема удаленного доступа

   Интерфейс удаленного управления

   Формирование миссии робота

Проведение удаленного эксперимента

Контактная информация

Библиография

Введение в ROS

   Уроки

   Тестирование
 
 Урок 1

Урок 1

Урок 1. Вводное занятие

1.1 Что такое ROS?

ROS это аббревиатура для Robot Operating System.
Следует сказать, что термин Операционная система для данного случая не вполне применим, потому что ROS это не операционная система в традиционном понимании, а фреймворк - программная платформа для разработки и объединения различных компонентов программного обеспечения (ПО), ориентированная на разработку ПО для различных робототехнических систем. Вы не можете установить ROS на пустой диск вашего компьютера и дать ей возможность управлять вашими файлами, процессами, разделять ресурсы компьютера между задачами, напрямую использовать процессор, память, ну и делать всё остальное, что делает всякая уважающая себя ОС. Если же мы будем воспринимать ROS, как систему, оперирующую задачами для роботов, устанавливающую связи между такими задачами, позволяющую работать с роботами, как с оборудованием, всё станет выглядеть более корректно. Как простыми словами описать работу ROS? Представим, что вы руководитель какого-то большого проекта и у вас в подчинении команда людей, часть которых создаёт ПО, другая - контроллеры оборудования, кто-то пишет техническую документацию, кто-то проводит закупки и прочее. Вы можете, конечно, каждого вызвать к себе, и человеку за человеком поставить задачу и дождаться результата, но такой способ управления не очень эффективен. Желательно, чтобы задачи выполнялись независимо и параллельно, а также, чтобы задачи, которые требуют взаимодействия, не страдали от отсутствия связи между работниками. Так можно представить и работу приложений в ROS. У нас есть некоторые “работники”, которые выполняют задачи, и есть средства коммуникации, которые позволяют этим “работникам” отправлять и получать информацию для выполнения частной задачи в процессе выполнения некоторой общей задачи, которая и будет нашим робототехническим приложением. Это и есть философия ROS общими словами.

1.2 Для чего ROS может быть полезен нам?

1.2.1 Модульность

Теперь давайте из руководителей станем частью команды разработчиков и поймём, чем же хорош ROS для нас в этом случае.
ROS поддерживает, более того, “настаивает” на модульной разработке ПО. Каждая небольшая задача оформляется программно в исполняемое приложение, которое называется “узел” (node), и каждый узел имеет возможность взаимодействовать с другими узлами. Такое взаимодействие обеспечивается самим ROS. Узлов может быть столько, сколько необходимо для решения задачи, каждый член команды разрабатывает свой узел независимо от других, но ориентируясь на строго определённые протоколы межпрограммного взаимодействия. Соответственно, каждый узел можно не только независимо создавать, но и независимо отлаживать и независимо тестировать. Собранный таким образом большой проект может быть достаточно просто исправлен, дополнен или обновлён только в одном или нескольких узлах без необходимости правки всего проекта целиком.

1.2.2 Открытый исходный код и сообщество ROS

Хоть мы и хотим создавать что-то новое, мы всегда можем захотеть подсмотреть, а как в похожем случае делал кто-то другой. Также есть вероятность, что кто-то уже создал узел или целый проект для робота, который вы собираетесь использовать. Всё это можно получить свободно и бесплатно, загрузив, например, с GitHub или GitLab. Кроме того, свободно и бесплатно можно получить совет сообщества, например, поискав ответ на ваш вопрос в ответах ROS (ROS Answers) или задав там свой вопрос или пообщавшись на форумах ROS. Если вам нужен драйвер устройства для вашего GPS, контроллер ходьбы и баланса для вашего четвероногого «животного» или картографическая система для вашего мобильного робота, у ROS всегда что-то найдётся. Драйверы, алгоритмы, пользовательские интерфейсы — ROS предоставляет строительные блоки, которые позволяют вам сосредоточиться на своем приложении.

1.2.3 Инструменты

У ROS есть богатый встроенный набор инструментов для упрощения разработки и отладки, визуализации выполнения задач, создания графических интерфейсов пользователя, отрисовки графиков, отображения взаимодействия процессов и прочих. Познакомиться с ними подробнее можно на странице Инструменты. А ещё, перед выходом вашего реального робота “в свет” вы можете испытать его в симуляторе, таком, как Gazebo. Вы даже сможете протестировать ваш ещё не созданный или не приобретённый робот в некотором ещё не существующем окружении.

1.2.4 Стандартная платформа разработки

У ROS есть набор правил и рекомендаций, которому должны следовать разработчики. Таким образом, обмен исходными кодами между разработчиками по всему миру значительно упрощается. Нет необходимости, например, документировать протоколы взаимодействия, разработчик должен только описать набор данных, которыми должны обмениваться узлы. Вы можете пользоваться огромным количеством уже написанных библиотек, необходимо только подключить их к проекту, прочитать документацию по использованию и установить необходимые зависимости для них.

1.3 Чем мы будем заниматься в этом курсе?

Наша основная задача - понять основы ROS, заложить базу, на которой вы сможете самостоятельно разрабатывать проекты от более простых к более сложным. Вы должны понимать, что может ROS, как создавать ПО в его парадигме, куда подсмотреть, чтобы не изобрести велосипед, поддерживаемый костылями, хотя не изобрести такой велосипед вы не сможете и вот почему: никто в мире не может сказать “Я знаю ROS”. Сколько бы вас ему не учили, сколько бы вы не занимались им самостоятельно, вы не сможете знать в нём всё и о нём всё. Сначала вы изучите основы, но даже изучив их, не будете понимать многого, зато будете способны разобраться, создать своё (вот тут костылевелосипед и появится в вашей жизни) и начать работать в команде над реальным проектом. Если в ROS появится что-то новое, вас это не поставит в тупик, потому что оно будет всё в той же парадигме, которую вы поняли. То есть, говоря кратко, вы не будете знать ROS, вы будете его понимать. Далее, вы научитесь создавать пакеты ПО для роботов, в том числе и для некоторых реальных робототехнических систем. И так, это не цикл лекций, это курс через внедрение. Вы будете самостоятельно создавать проекты и использовать различные инструменты ROS собственными руками, ну и, конечно, головой. В конце мы постараемся выйти на реальный проект ПО для некоторого мобильного робота, по окончании которого робот будет делать то, что вы от него просите, и вы должны будете объяснить, как получилось так, что он делает, то что вы от него попросили. То есть вы побудете инженерами-робототехниками.

1.4 Что мы будем использовать?

Компьютер с операционной системой на нём — той самой ОС в классическом понимании. Так как курс у нас по ROS или как теперь говорят, ROS 1, то в качестве такой ОС мы будем использовать дистрибутив GNU/Linux Ubuntu. А так как мы будем использовать последнюю (и на данный момент и в принципе) версию ROS 1 под названием ROS Noetic Ninjemys, то мы будем использовать компьютер под управлением ОС Ubuntu 20.04 LTS Focal Fossa.
20 - это год выхода, 04 - месяц выхода, LTS - долгосрочная поддержка, Focal Fossa - это название маскота, ну или кодовое название версии.
Ubuntu бесплатна, установить её не сложнее, чем ОС Windows, она имеет графический интерфейс пользователя. Мы не будем её позиционировать в качестве замены ОС Windows, а только в качестве основы для ROS 1, но, в то же время, необходимо сказать, что для Ubuntu существует огромное количество ПО, позволяющее делать практически всё то, что вы привыкли делать в Windows. Если вы не знакомы с Ubuntu, ничего страшного. На протяжении курса вы получите необходимые на данном этапе курса инструкции.

1.4.1 Сравним Ubuntu и Windows

Итак, вы установили на компьютер ОС Ubuntu, запустили её и увидели следующую картину:
ubuntudesktop.png
Слева расположился столбик с какими-то значками, сверху строчка со временем, датой, и ещё какими-то значками, основное место занимает практически пустой рабочий стол с фоновой картинкой. В принципе, человек, знакомый с концепцией Windows, достаточно быстро поймёт, что столбик слева содержит некоторые закреплённые приложения, например, веб-браузеры Firefox и Яндекс, а строчка сверху похожа на область уведомлений Windows. То есть, мы видим Панель задач Windows, но разделённую на части. На рабочем столе у нас лежат две папки: Домашняя папка и папка Корзины. В левом нижнем углу можно увидеть элемент интерфейса, отдалённо напоминающий кнопку Пуск ОС Windows, по её нажатию на экране появятся приложения, установленные в нашей ОС Ubuntu. То есть, в принципе вы можете посадить человека, знакомого с ОС Windows за компьютер с ОС Ubuntu и он, если не будет упрямиться, то через не очень долгое время может легко освоить графический интерфейс пользователя (Graphical User Interface - GUI) ОС Ubuntu. Однако нам потребуется работать не только с GUI. Вернее сказать, большую часть времени мы будем взаимодействовать с компьютером будем через интерфейс командной строки (Command Line Interface - CLI). С другой стороны, наши приложения, когда они достигнут некоторого уровня, получат GUI. А зачем нам использовать CLI, наследника телетайпов древних компьютеров, если есть GUI? Давайте пока скажем так: Мы всё-таки хотим красные глаза! Так вот, о наследнике телетайпа в linux-системах… Давайте вызовем наш первый текстовый терминал Ubuntu, сделать это не сложнее, чем вызвать Деда Мороза на детском утреннике - нажмите на клавиатуре одновременно Ctrl+Alt+T и вот появляется он, наш терминал, или, если говорить совсем корректно - эмулятор терминала:
terminal.png

1.4.2 Терминал

Если вы смотрели фильмы про каких-нибудь хакеров, вы его узнали. Да, это через него легко можно взломать КГБ, Пентагон и Форт Нокс (нет), начать править машинные коды (нет … почти) и подключиться к компьютерной сети инопланетного корабля (нет … наверное). Что же можно сделать с его помощью? На самом деле, его возможности ограничены только набором команд управления операционной системой, а их достаточно много, и приложений, установленных в ОС, а их количество ограничено только вашей фантазией и памятью компьютера. Другими словами, мы можем управлять ОС из одного приложения. Ниже мы познакомимся с некоторыми базовыми возможностями терминала, теми, которые вам будут нужны, чтобы не споткнуться о порог вхождения в ROS.
Во-первых, когда терминал стартует, он отправляет вас в ваш домашний каталог – личный каталог зарегистрированного пользователя ОС, к файлам и подкаталогам которого будет доступ у полаваемых из него команд, если мы не уточним путь к ним специально.
В Windows такой каталог тоже есть, но обычно пользователи Windows не используют его непосредственно, а напрямую пользуются каталогами, лежащими в каталоге пользователя, например, каталогами Documents или Downloads. Даже вернее будет сказать, пользуются ссылками на эти каталоги “Документы” и “Загрузки”. Если мы откроем домашний каталог в проводнике Ubuntu, мы увидим похожий набор каталогов:
Home.png

Но мы отвлеклись от нашего терминала. Давайте поупражняемся в переходе из одного каталога в другой в терминале. Для этого нам надо знать, в какой каталог мы можем перейти, а получить такую информацию мы можем с помощью команды ls. Напишем её в приглашение терминала и нажмем Enter:
command_ls.png

Кстати, формат приглашения терминала, которое на рисунке выглядит так groolu@i9:~$, для Ubuntu имеет следующий смысл:
groolu - имя пользователя который работает на компьютере i9 и находится в каталоге ~ (условное обозначение домашнего каталога авторизованного пользователя в unix-системах) в качестве обычного пользователя $ (пользователь с правами root будет обозначен #).
А, например, для пользователя iamuser компьютера mycomputer, который работает в каталоге /media с root-правами, приглашение будет выглядеть так: iamuser@mycomputer:/media#.

Вернемся к навигации по каталогам с помощью терминала. Давайте перейдем в один из каталогов, которые нам выдала команда ls - Музыка. Для этого нам надо изменить каталог или, если говорить по-английски Change Directory, вот сокращение от этих слов и будет командой смены каталога, команда cd, параметром которой будет имя желаемого каталога или, если говорить точнее, путь к каталогу. Напишем cd музыка и увидим результат:
cd_wrong_dir.png

Результат, прямо скажем, неудовлетворительный, но и не удивительный. Всё дело в том, что в unix-системах регистр текста значимый и если мы напишем cd Музыка, то и получим то, что хотели:
cd_right_dir.png

Обратите внимание на изменившееся имя каталога в приглашении. Здесь надо ещё сказать, что мне не пришлось переписывать всю команду заново, я отредактировал свою неправильную команду. Сделал я это просто, так, если в терминале нажать клавишу “стрелка вверх”, то в приглашение попадёт команда, которую вы вводили перед этим. Если нажмём ещё раз, получим команду, которую вводили ещё раньше. Ну а если промахнулись, вернуться можно клавишей “стрелка вниз”. Редактировать команду можно с помощью клавиш “стрелка влево”, “стрелка вправо”, “Delete” и “Backspace”, ну и, конечно, остальных клавиш с цифрами, буквами и символами. Это очень полезное свойство терминала даже и без редактирования, которое позволяет вспомнить, что же вы делали раньше, или подавать некоторую последовательность команд, не набирая их каждый раз заново. Вернёмся к навигации. Мы перешли в каталог Музыка давайте посмотрим, что там есть с помощью уже использовавшейся команды ls:
sl_Music.png

Что-то пошло не так, результат нет? Нет, всё хорошо и результат есть, но нет музыки. Буквально, нет ни одного музыкального файла в каталоге. Да и других файлов нет, даже каталогов, которые, знаете, и сами своего рода файлы. Давайте посмотрим на этот каталог с помощью файлового менеджера:
Empty_Music.png

Действительно, “Папка пуста”. Давайте найдём каталог с файлами. Для этого мы вернёмся в каталог, который является родительским для каталога Музыка. Что такое родительский каталог? Все файлы (и каталоги, в том числе) нашей файловой системы произрастают из одного корня — корневого каталога, обозначаемого /. В корневом каталоге хранятся другие каталоги и файлы, в этих каталогах ещё каталоги и файлы и так далее. Таким образом, мы имеем классическую древовидную структуру. Так вот, родительским для каталога Музыка будет каталог, в котором эта Музыка появилась, наш домашний каталог ~. В linux даже есть утилита tree, которая может показать дерево каталога. Утилита эта обычно не ставится вместе с ОС, но её можно поставить из официальных репозиториев (источников ПО). Вот так, например, выглядит структура каталогов нашего домашнего каталога:
tree_home.png

Его содержимое нам знакомо, так как раньше мы его уже выводили командой ls:
ls_home_again.png

Придирчивый взгляд может заметить изменения, и такие изменения, это естественный процесс работы пользователя с файловой системой. Какие-то файлы появились, а какие-то исчезли. Вернёмся к нашему бегству из каталога Музыка в родительский каталог. Для этого нам даже не надо знать имени этого родительского каталога, достаточно использовать условное обозначение нашего физического родителя — две точки подряд ... Давайте с помощью ls убедимся ещё раз, что текущий каталог пуст, затем попробуем применить команду cd с двумя точками, а в конце ls посмотрим снова на содержимое текущего каталога:
to_parent_ans_list.png

В принципе, на этом можно было бы и остановиться в поиске каталога с файлами, ведь в нашем домашнем и файлы и каталоги представлены, но давайте всё же сходим в другой каталог, например, в Загрузки, где мы увидим файлы:
cd_Downlads.png

А как быть, если теперь нам сразу надо попасть в каталог с документами, например? Мы знаем, что этот каталог лежит в нашем домашнем каталоге, так что путь к искомому каталогу начинается с обозначения нашего домашнего каталога ~. Так и начнём писать cd ~/, а дальше применим магию. Так как мы точно не помним, как называется каталог с документами, мы бы хотели подсмотреть его название. Вот только, мы уже начали писать команду смены каталога, да и смотреть из дочернего каталога содержимое родительского мы ещё не умеем. Что же делать? Воспользоваться волшебной палочкой клавишей TAB, нажав её два раза. Терминал покажет нам имена каталогов, которые мы можем выбрать, и снова вернёт нас в приглашение с набранной до этого командой. Волшебство не закончилось! Дополним нашу команду в приглашении буквами До, нажмем клавишу TAB ещё раз и увидим в приглашении команду cd ~/Документы/. Нажимаем клавишу ВВОД и вот мы в каталоге Документы. Такое “умное” дополнение команды элементами пути к файлу возможно не только в команде cd, а в большинстве подаваемых терминалу команд, если его параметром является путь.

Следующее, что мы сделаем с помощью терминала, это создадим новый каталог, для чего существует команда mkdir, получившая своё название от Make Directory (Создать каталог). Сейчас мы находимся в каталоге Документы и хотим создать каталог с документами docx и назвать его Word. В приглашении пишем mkdir Word; ls. Тут я воспользовался возможностью подавать терминалу несколько команд за один раз последовательно. То есть, если бы я написал mkdir Word, нажал ENTER, написал ls и снова нажал ENTER, результат был бы тот же самый. Вернёмся к терминалу и увидим, что каталог Word теперь существует:
mkdir_Word.png

Но тут мы вспоминаем, что дистрибутива MS Office для Linux никогда не выпускался, погрустим и удалим наш каталог Word с помощью команды rm (от remove). Как вы можете догадаться, если Remove, а не Remove Directory, то и удалять команда rm может не только каталог, но и практически любой файл нашей файловой системы. Более того, наша просьба удалить каталог Word получит отказ:
rm_Word.png

Как же нам быть? Просто, с помощью так называемого ключа команды rm -d надо сообщить команде, что мы действительно хотим удалить каталог:
rm_d_Word.png

Установка ROS

Итак, теперь, когда мы попробовали отдавать команды операционной системе с помощью терминала, и такой способ человеко-машинного взаимодействия нас не пугает, настала пора установить ROS на наш компьютер, если там его ещё нет. Обязательно стоит отметить, что все программное обеспечение ROS мы будем брать из Интернета, так что компьютер должен иметь к нему доступ.
Как я говорил раньше, мы будем использовать последнюю версию ROS 1 Noetic Ninjemys, процесс установки которой на ОС Ubuntu описан на странице ROS Wiki Инструкция по установке ROS Noetic для Ubuntu.
Небольшая ремарка, далее нам придётся копировать и вставлять длинные команды, но в терминале вы не сможете использовать привычные вам ctrl+с и ctrl+v. Эти сочетания работают не так. Ctrl+с, например, прерывает текущий процесс, который вы запустили в терминале. Ничего страшного здесь нет и ничего сложного нам осваивать не придётся. Если вы хотите использовать клавиатуру, используйте ctrl+shift+с и ctrl+shift+v или ctrl+ins и shift+ins. Это особенно полезно, если мы работаем в текстовом режиме, например, подключившись к Ubuntu через ssh. Но и не стоит забывать, что тот терминал, который мы используем в наших примерах, это не просто эмулятор терминала, а ещё и эмулятор с GUI, так что всегда можно правой кнопкой мыши вызвать контекстное меню, а там выбрать команду вставки.

Давайте пройдёмся по пунктам:
1.1 Настройте репозитории Ubuntu Если вы только поставили Ubuntu и ничего в ней не трогали, то вам этот пункт не понадобится. Ну а если вы уже меняли репозитории на альтернативные, вы и без меня знаете, что делать.

1.2 Настройте список источников Здесь нам придётся с помощью жутковато выглядящей составной команды, сказать установщику программных пакетов, где эти самые пакеты для ROS брать. На самом деле это очень простая и популярная команда echo, которая печатает заданную строчку текста и вывод которой перенаправлен в нужный нам файл, только команда в нектором “обвесе”, позволяющем править файлы в защищённых каталогах. Итак, сделаем это, расскажем установщику, куда ему смотреть – скопируем текст ниже, вставим в приглашение терминала и нажмём ENTER:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

set_ros_repo.png

Обратите внимание, что команда начинается со слова sudo, а это значит, что выполняться команда будет от имени суперпользователя root, и для её выполнения придется ввести пароль который мы уже забыли задавали при установке Ubuntu.

1.3 Установить ключи Здесь мы должны настроить ключи, чтобы ОС могла проверить подлинность репозиториев. Вникать в это в цели нашего курса не входит, давайте просто сделаем это. Для того, чтобы нам это сделать, понадобится утилита curl, которая может быть не установлена в Ubuntu. Проверим, есть ли у нас curl с помощью команды curl -h в терминале: curl_help.png

Если curl начал выдавать справку, значит он есть. А если не начал? Тогда установим его с помощью команды

sudo apt install curl

Считаем, что curl установлен, и подаём команду

curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

И да, вон тот минус в конце – это не опечатка.
set_up_keys.png

Команду подали, команда нам сказала OK. Если не OK, придётся читать вывод и вникать, что случилось. Например, у компьютера пропала связь с Интернетом.

1.4 Установка В этом пункте мы устанавливаем сам ROS. Перед установкой пакетов с помощью Advanced Packaging Tool или apt, мы должны обновить базы данных пакетов. Мы должны это сделать обязательно, так как в п. 1.2 мы настроили источники, а вот информацию от них наша ОС ещё не получила. Вообще, подавать команду apt update перед установкой стоит всегда. Подадим эту команду от имени суперпользователя и мы:

sudo apt update

apt_update.png

Вывод команды обязательно стоит почитать. В случае на картинке выше apt сообщает нам, что появились новые версии пакетов и их стоит обновить. Для установки ROS это не критично, но если бы нам сообщили о том, что есть сломанные пакеты, пришлось бы идти и читать мануалы. Если никаких проблем нет, можно двигаться дальше. Мы должны выбрать “комплектность” ROS (или как говорится на странице Wiki - сколько ROS вы хотите установить) и установить выбранное. Здесь мы будем устанавливать полную версию для рабочего ПК. Если вы не знаете, для чего вам нужна другая комплектация, уверяю, она вам не нужна. Подадим команду

sudo apt install ros-noetic-desktop-full

Установка начнётся, и в какой-то момент вас спросят, хотите ли вы установить всё это великолепие себе на компьютер. Если хотите, то надо ответить нажатием клавиши Y или Д и подтвердить ENTER.
DoYouWantContinue.png

После продолжительной установки с пробеганием разных непонятных строчек в терминале установка завершится и терминал выйдет в приглашение. Тут есть одна особенность работы с терминалом, которая мне не нравится, но деться от неё никуда нельзя - если где-то возникла ошибка, мы должны читать вывод терминала, и не обязательно об ошибке будет написано в самом конце. С другой стороны, в терминале будет написана причина ошибки (а не код ошибки в стиле Windows 0xLETYOUGUESS00873), с которой можно разобраться самостоятельно, либо погуглить информацию. Но я уверен, что у нас всё прошло замечательно и теперь ROS установлен.

1.5 Настройка среды Приятно, что за нас всё, что нам сейчас нужно, уже настроили, поместили в файл сценария (текстовый исполняемый файл ОС или скрипт) и положили нам на диск. Всё что нужно, в каждом новом терминале выполнять этот файл с помощью команды:

source /opt/ros/noetic/setup.bash

“Конечно, запускать каждый раз это никто не собирался”.

Упростим нашу тяжёлую жизнь и воспользуемся ещё одним скриптом, который всегда запускается при открытии нового терминала, а если более корректно, при запуске нового экземпляра командной оболочки bash, к которой терминал и подключается, скриптом .bashrc, тайно лежащем в нашем домашнем каталоге. На его скрытность указывает точка в начале. Файлы, помеченные таким образом, обычно не отображаются пользователю. Посмотрим с помощью файлового менеджера.
hiden.png

Видите, его нет. Но если мы нажмём ctrl+h, то увидим и .bashrc и много другого, что обычному пользователю видеть незачем.
unhidden.png

Теперь дополним .bashrc строкой запуска скрипта, которую раньше подавали из приглашения терминала. Нам опять поможет команда echo:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

После этого, если мы не хотим закрывать и открывать терминал, нужно выполнить доработанный скрипт .bashrc:

source ~/.bashrc

1.6 Зависимости для сборки пакетов Если мы хотим создавать собственное программное обеспечение ROS, а мы хотим, нам надо установить некоторое количество дополнительных пакетов. Так же, как мы делали ранее, последовательно копируем текст команды, вставляем в приглашение и нажимаем ENTER для следующей последовательности команд:

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
sudo rosdep init
rosdep update

Зачем мы второй раз ставим python3-rosdep я не знаю, но это команды из официального руководства по установке ROS, а кто я такой, чтобы с ними спорить?

На этом торжественно объявляю установку ROS завершённой.

Для дальнейшей нашей программистской деятельности с пакетами ROS, которую мы будем вести с помощью теперешней системы сборки catkin для ROS, установим ещё инструментарий для этой системы сборки. Опять же, копируем и вставляем, копируем и вставляем.

sudo apt update
sudo apt install python3-catkin-tools

Заключение

Подведём итоги нашего первого занятия. Что мы из него узнали? Мы узнали, что такое ROS, для чего ROS может быть полезен инженеру-робототехнику, немного узнали об ОС Ubuntu и её отличиях от ОС Windows, получили начальные сведения об эмуляторе терминала Linux, установили ROS 1 и пакеты для создания собственного программного обеспечения. ## Заключение (обновлённая версия)

ROS — это не просто программная платформа, а целая экосистема для разработки робототехнических систем. Её модульность позволяет создавать гибкие и масштабируемые приложения, где каждый компонент работает независимо, но взаимодействует с другими через единую коммуникационную среду. Открытость кода и поддержка глобального сообщества делают ROS мощным инструментом, способствующим обмену знаниями и ускорению инноваций. Встроенные инструменты и симуляторы позволяют эффективно тестировать решения ещё до их реализации в “железе”.

На этом уроке вы познакомились с основами ROS: узнали, что такое узлы, как они взаимодействуют между собой, и почему модульная архитектура важна для разработки сложных систем. Вы узнали о преимуществах открытого исходного кода, освоили базовые команды терминала Linux и сделали первый шаг к установке ROS. Теперь вы понимаете философию ROS и готовы двигаться дальше — к созданию собственных пакетов и проектов.