Целью данной статьи является краткое описание основных шагов, которые должны помочь сделать первый шаг к изучению ROS
Актаулизируем систему:
sudo apt-get update && sudo apt-get update -y
Устанавливаем сборщики пакетов питон:
sudo apt install python-pip -y && sudo apt install python3-pip -y
pip --version
pip3 --version
Для дальнейшего использования в ряде проектов пригодится ExpanderHat:
sudo pip3 install pyiArduinoI2Cexpander
RaspberryOS
Ставим образ 64 разрядной системы, консольной версии RaspberyOS на флешку размером не менее 16 Гб c официального сайта raspios_lite_arm64-2020-08-24
Выбор ОС без рабочего стола был сделан по причине использования исключительно терминала на удалённой машине.
Опять же экономия ресурсов, на и без того не самой сильной Raspberry Pi
Текущая версия системы:
cat /etc/*-release
Установка Noetic on Buster:
Добавляем репозиторий для скачивания
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Устанавливаем системные ключи:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
Обновим перечень репозиториев:
sudo apt update
Ставим базовую версию ROS без поддержки графических утилит:
sudo apt install ros-noetic-ros-base -y
Установка дополнительных пакетов для конкретных нужд выполняется командой:
sudo apt install ros-noetic-slam-gmapping
Узнать какие пакеты уже установлены:
apt search ros-noetic
Обнговление переменных среды:
source /opt/ros/noetic/setup.bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
Проверка версии ROS:
rosversion -d
Получить информацию о текущей версии ROS:
printenv | grep ROS
Проверка работоспособности
Открываем новый терминал и запускаем ROS командой:
roscore
Открываем еще один терминал, т.к. предыдущий уже заблокирован и запускаем там команды для проверки функционирующих топиков и нод:
Это означает, что ROS встал успешно и можно переходить к процедуре запуска Hello World
Запустим лучший тест для демонстрации взаимодействия нод и топиков
Нам потребуется 3 терминала, в каждом из которых запустим свои команды:
- терминал запускает ROS командой: roscore
- терминал - создадим топик, публикующий сообщения:
rostopic pub /hello_world std_msgs/String "Hello ROS" -r 1 - терминал будет прослушивать именованый топик:
rostopic echo /hello_world
Очень благодарен за содействие всему сообществу ROS в telegramm за ответы на мои глупые вопросы новичка!