Хорошо, будь честным. Мы все такие: «ROS звучит круто». Позвольте мне установить его и посмотреть, как он работает, а также насколько сложной может быть его установка (знаменитые последние слова). Затем вы ищете «ROS install Ubuntu» и находите 50 руководств, говорящих что-то другое. Некоторым требуется 4 часа компиляции, в то время как другие просто используют ATP. Что со всем этим делать?

Способ 1: Легкий выход!

Теперь, как это работает, просто. ROS поддерживает только LTS-версии Ubuntu. Это 20.04, 18.04, 16.04, 14.04 и т. д. Теперь для каждой версии LTS есть версия ROS. Для версии 20.04 это Noetic Ninjemys, для версии 18.04 — Melodic Morenia и т. д. Вы, должно быть, задаетесь вопросом: «Можете ли вы обмениваться данными между другими версиями ROS?» Абсолютно! Они будут безупречно общаться друг с другом. Они обмениваются данными по IP-протоколу, который является общим и обратно совместимым. Немного сложно установить связь между ROS1 и ROS2, так как вы должны использовать ros_bridge. Но это в другой день!

Для 20,04 LTS

Теперь, если у вас нет какой-то сумасшедшей зависимости, последняя версия ROS1 — это то, что нужно для начинающих. Последним по состоянию на 12 декабря 2021 г. является ROS Noetic. Установка предыдущих версий будет немного сложнее. Еще 1 вещь, я покажу установку на Ubuntu 20.04, но доступны и другие операционные системы, такие как Arch, Windows и Debian. Вот как вы можете установить Noetic Ninjemys:

Ссылка на другие установки ОС: http://wiki.ros.org/noetic/Installation

(# означает комментарий. Не запускайте эту часть.)

1.1 (Usually done by default) Make sure "restricted," "universe," and "multiverse" are enabled. Check https://help.ubuntu.com/community/Repositories/Ubuntu
2.1 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' # Add their repository to your machine
3.1 sudo apt install curl # Usually comes preinstalled
3.2 curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - # Add repository key
4.1 sudo apt update # Update repository listing
4.2 sudo apt install ros-noetic-desktop-full # Contains all essential packages like perception and simulation. Perfect for beginers. Others are "ros-noetic-ros-base" which is the bare-bones. The middle version is "ros-noetic-desktop" which had some debug tools but none of the perception and simulation packages. 
You must source the ROS environment everytime so you can run "source /opt/ros/noetic/setup.bash" but if you don't want to run it everytime you spawn a terminal:
5.1 echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
5.2 Close all terminal instances and reopen terminal.
Update ROS Core Dependencies:
6.1 sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential # Install tools
6.2 sudo apt install python3-rosdep # Install rosdep(tool)
6.3 sudo rosdep init # Initialize rosdep
6.4 rosdep update # Update rosdep

Вот и все!

Способ 2

Существует отдельный способ, с помощью которого вы можете установить и скомпилировать все ~ 150 пакетов из исходного кода. Это для профессиональных разработчиков или запутавшихся новичков (понятно?). Пожалуйста, дайте мне знать в комментариях, если вы хотите, чтобы я сделал отдельную статью об этом!

Настройка среды разработки

Итак, установка наконец-то завершена. Не так быстро! Нам еще предстоит сделать среду разработки. Не волнуйтесь, это СУПЕР легко!

1 mkdir WORKSPACE_NAME # Go to the place you want your code, environment, and packages to reside. Replace WORKSPACE with a name of your choice.
2 cd WORKSPACE_NAME # Go into directory
3 mkdir src # DO NOT change this name or it won't compile. Also, DO NOT cd into it
4 catkin_make # compile your blank project!

Возьмите его на спину!

Наконец, момент, которого вы все ждали... ваша самая первая команда ROS1!

Примечание:

Обратите внимание: в этой статье показано, как настроить ROS на 1 компьютере. Это означает, что мастер и узлы находятся на одном компьютере. Для связи на многих компьютерах существует болезненная процедура настройки, которую я пока не заставляю вас терпеть (приготовьтесь к будущему).

Ядро РОС

ROS1 (не ROS2) работает в следующей системе:

ROS Core управляет главным узлом. Он управляет всеми коммуникациями, происходящими в сети ROS. Без него вы не сможете запустить ни один узел ROS.

roscore # Spawns a ROS master node. 

Черепаха Сим

Первое, что вы собираетесь сделать, это заставить маленькую черепашку рисовать что-то на экране с помощью ваших стрелок.

Если у вас мало времени, установите его с помощью APT:

sudo apt-get install ros-$(rosversion -d)-turtlesim # install the turtle sim package

Если вы хотите правильно изучить ROS, сделайте следующее:

1. cd WORKSPACE_NAME/src # Go to the source directory
2. sudo apt install git # Install git if you don't have it.
3. git clone https://github.com/ros/ros_tutorials.git # Download the turtle_sim and lesson packages
4. cd .. # Go to main directory
5. catkin_make # Compile the project
6. source devel/setup.bash # Re-Source compiled files.

Теперь давайте запустим его! Убедитесь, что roscore запущен на другом терминале.

1. rosrun turtlesim turtlesim_node
# command   node       script

Это должно показать поле, в котором вы можете перемещать черепаху. Но что еще более важно, это то, что происходит за кулисами.

rosnode list

Что ты видишь? Вы можете найти наш узел?

rostopic list

Где тема о местонахождении черепахи? Ты видел это?

rostopic <TURTLE_POSE_TOPIC_NAME> echo

Замените первый аргумент именем темы, которое вы ранее нашли. Вы видите, как координаты перемещаются, когда черепаха бегает (или, лучше сказать, ползает)?

На что следует обратить внимание:

cmd_vel: это то, что мы называем Twist-сообщением. Он содержит целевые значения скорости для 3 осей перемещения и 3 осей вращения. Вы можете себе представить, насколько это полезно для робота с дистанционным управлением.

Структура команды: заметили ли вы шаблон в командах. Это объект, к которому вы обращаетесь (rosnode, rosservice, rostopic, rosrun и т. д.), затем действие, которое вы хотите выполнить (echo, list, hz и т. д.), затем аргументы. Мы углубимся в эти команды в другой статье.

Поддержите таких создателей, как я!

Я думаю, что для меня важно рассказать людям о проблемах, которые у меня были с ROS, робототехникой и ИИ, чтобы им не пришлось тратить время на установку ROS в течение 3 месяцев, прежде чем они поймут, что существует пакет APT (который описывает меня). Вот почему я взял на себя самое сложное испытание… робот-собака! Но мне нужна поддержка от вас, ребята! Любая поддержка в финансовом отношении или с самим роботом будет безмерно оценена. Посетите мою страницу Github и Opencollective:

Спасибо за Вашу поддержку!