> For the complete documentation index, see [llms.txt](https://voltbro.gitbook.io/arduino-ros/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voltbro.gitbook.io/arduino-ros/4_ros-base/base.md).

# Базовые понятия ROS

## Основные термины <a href="#osnovnye-terminy" id="osnovnye-terminy"></a>

### Мастер (Master), Мастер-Нода <a href="#master-master-master-noda" id="master-master-master-noda"></a>

Мастер выполняет роль сервера имен для возможности подключения между собой различных нод. Команда `roscore` запускает сервер мастера, и после этого к нему могут подключиться и зарегистрироваться ноды ROS. Связь между нодами (обмен сообщениями) невозможна без наличия запущенного мастера.

При запуске ROS `roscore` мастер будет запущен по адресу URI, установленном в переменной окружения `ROS_MASTER_URI`. По умолчанию адрес использует IP-адрес локального ПК и номер порта 11311

### Нода (Node) <a href="#noda-node" id="noda-node"></a>

Понятие ноды относится к наименьшей "рабочей" единице, используемой в ROS. Можно провести аналогию с одной исполняемой программой. ROS рекомендует создать одну ноду для каждой задачи, что позволить легче использовать ее в других проектах.

При запуске нода регистрирует информацию о себе на мастере (название ноды, типы обрабатываемых сообщений). Зарегистрированная нода может взаимодействовать с другими нодами (получать и отправлять запросы). Важно отметить, что обмен сообщениями между нодами работает без участия мастера (соединение между нодами происходит на прямую). Мастер обеспечивает только единое пространство имен для решения вопроса, куда подключиться к конкретной ноде. Адрес запуска ноды берётся из переменной окружения `ROS_HOSTNAME`, которая должна быть определенна до запуска. Порт устанавливается на произвольное уникальное значение.

### Пакет (Package) <a href="#paket-package" id="paket-package"></a>

Пакет является основной единицей ROS. Любое приложение ROS оформляется в пакет, в котором определяются: конфигурация пакета, ноды, необходимые для работы пакета, зависимости от других пакетов ROS.

Работа с пакетами ROS очень похожа на работу с пакетами linux. Пакет ROS можно поставить готовым из репозитория пакетов или скачать и скомпилировать из исходных кодов.

Поиск доступных пакетов ROS возможен на странице <http://wiki.ros.org/>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://voltbro.gitbook.io/arduino-ros/4_ros-base/base.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
