113 lines
7.6 KiB
Markdown
113 lines
7.6 KiB
Markdown
|
# Инструкция по добавлению нового робота в фреймворк Robossembler ROS 2
|
|||
|
|
|||
|
Прежде всего необходимо скачать пакет робота, содержащий файлы `xacro` или `urdf`, а также файлы геометрии робота в формате `.stl`, `.dae`, `.obj` и других.
|
|||
|
|
|||
|
Перед началом работы важно ознакомиться с основными аспектами формата [xacro](https://github.com/ros/xacro/wiki). Этот формат позволяет переиспользовать существующие фрагменты URDF-описания робота, что упрощает создание и модификацию описания.
|
|||
|
|
|||
|
### Шаги по добавлению нового робота:
|
|||
|
|
|||
|
1. **Установка пакета робота**
|
|||
|
После установки пакета робота создайте файл `xacro_args.yaml` в директории `{description_package}/config/`. В этом файле необходимо указать аргументы для преобразования xacro-файла в URDF.
|
|||
|
|
|||
|
2. **Настройка запуска**
|
|||
|
Отредактируйте файл `rbs_bringup/launch/rbs_bringup.launch.py`, указав параметры для запуска робота.
|
|||
|
|
|||
|
Пример стандартной реализации:
|
|||
|
```python
|
|||
|
main_script = IncludeLaunchDescription(
|
|||
|
PythonLaunchDescriptionSource(
|
|||
|
[
|
|||
|
PathJoinSubstitution(
|
|||
|
[FindPackageShare("rbs_runtime"), "launch", "runtime.launch.py"]
|
|||
|
)
|
|||
|
]
|
|||
|
),
|
|||
|
launch_arguments={
|
|||
|
"with_gripper": "true",
|
|||
|
"gripper_name": "rbs_gripper",
|
|||
|
"robot_type": "rbs_arm",
|
|||
|
"description_package": "rbs_arm",
|
|||
|
"description_file": "rbs_arm_modular.xacro",
|
|||
|
"robot_name": "rbs_arm",
|
|||
|
"use_moveit": "false",
|
|||
|
"moveit_config_package": "rbs_arm",
|
|||
|
"moveit_config_file": "rbs_arm.srdf.xacro",
|
|||
|
"use_sim_time": "true",
|
|||
|
"hardware": "gazebo",
|
|||
|
"use_controllers": "true",
|
|||
|
"scene_config_file": "",
|
|||
|
"base_link_name": "base_link",
|
|||
|
"ee_link_name": "gripper_grasp_point",
|
|||
|
"control_space": "task",
|
|||
|
"control_strategy": "position",
|
|||
|
}.items(),
|
|||
|
)
|
|||
|
```
|
|||
|
Здесь выполняется запуск другого launch-файла с указанными аргументами. Ниже приводится описание каждого аргумента.
|
|||
|
|
|||
|
### Описание параметров:
|
|||
|
|
|||
|
- **`with_gripper`**
|
|||
|
Указывает, есть ли на роботе захватное устройство (гриппер). Если значение `true`, будет настроен и запущен `gripper_controller`.
|
|||
|
|
|||
|
- **`gripper_name`**
|
|||
|
Используется как ключевое слово для указания линков и джоинтов, относящихся к грипперу. Также применяется в xacro-аргументах.
|
|||
|
|
|||
|
- **`robot_type`**
|
|||
|
Обозначает группу роботов одного типа. Например, все роботы с разными именами, но одинаковой конструкцией.
|
|||
|
|
|||
|
- **`description_package`**
|
|||
|
Пакет, содержащий описание URDF робота. Обязательный параметр. Используется для определения пути к файлу описания и конфигурации контроллеров.
|
|||
|
|
|||
|
- **`description_file`**
|
|||
|
Имя файла описания, который должен находиться в `{description_package}/urdf/`.
|
|||
|
|
|||
|
- **`robot_name`**
|
|||
|
Уникальное имя робота, которое позволяет отличить его от других в сцене.
|
|||
|
|
|||
|
- **`use_moveit`**
|
|||
|
Указывает, нужно ли использовать [MoveIt 2](https://moveit.picknik.ai/humble/index.html). Для базовых перемещений MoveIt 2 не обязателен, но для работы с препятствиями рекомендуется его включить.
|
|||
|
|
|||
|
- **`moveit_config_package`**
|
|||
|
Имя пакета конфигурации MoveIt 2, который генерируется на основе `{description_package}`. Обязательный параметр, если используется MoveIt 2.
|
|||
|
|
|||
|
- **`moveit_config_file`**
|
|||
|
Файл запуска MoveIt 2, находящийся в `{moveit_config_package}/launch/`.
|
|||
|
|
|||
|
- **`use_sim_time`**
|
|||
|
Обязательный параметр при работе в симуляции. Обеспечивает синхронизацию времени с симулятором.
|
|||
|
|
|||
|
- **`hardware`**
|
|||
|
Указывает интерфейс для управления роботом. Например, `gazebo`. Используется в основном в xacro-файлах.
|
|||
|
|
|||
|
- **`use_controllers`**
|
|||
|
Указывает, нужно ли использовать стандартные контроллеры. Если значение `false`, робот не сможет двигаться. Влияет на запуск файла `rbs_bringup/launch/control.launch.py`.
|
|||
|
|
|||
|
- **`scene_config_file`**
|
|||
|
Файл конфигурации сцены в формате YAML. Пример можно найти `env_manager/rbs_runtime/config/default-scene-config.yaml`. Обратите внимание на соответствие количества степеней свободы робота.
|
|||
|
|
|||
|
- **`base_link_name`**
|
|||
|
Имя базового линка, от которого начинается робот. Важно для настройки навыков. Рекомендуется свериться с URDF.
|
|||
|
|
|||
|
- **`ee_link_name`**
|
|||
|
Имя конечного линка (энд-эффектора), где заканчивается робот. Этот параметр также настраивается на основе URDF.
|
|||
|
|
|||
|
- **`control_space`**
|
|||
|
Указывает, в каком пространстве робот будет управляться.
|
|||
|
Возможные значения:
|
|||
|
- `task` — управление в пространстве задач (например, с использованием позиций и ориентации в рабочем пространстве).
|
|||
|
- `joint` — управление в пространстве суставов (например, с использованием угловых значений для каждого сустава робота).
|
|||
|
Значение по умолчанию: `task`.
|
|||
|
|
|||
|
- **`control_strategy`**
|
|||
|
Указывает стратегию управления роботом.
|
|||
|
Возможные значения:
|
|||
|
- `position` — управление положением, когда задаются желаемые позиции для суставов или рабочей точки.
|
|||
|
- `velocity` — управление скоростью, когда задаются желаемые скорости движения.
|
|||
|
- `effort` — управление усилием, когда задаются моменты или силы, прикладываемые к суставам.
|
|||
|
Значение по умолчанию: `position`.
|
|||
|
|
|||
|
- **`interactive`**
|
|||
|
Указывает, нужно ли запускать контроллер `motion_control_handle`.
|
|||
|
Значение по умолчанию: `true`.
|