Инструкция по добавлению нового робота в фреймворк Robossembler ROS 2
Прежде всего необходимо скачать пакет робота, содержащий файлы xacro
или urdf
, а также файлы геометрии робота в формате .stl
, .dae
, .obj
и других.
Перед началом работы важно ознакомиться с основными аспектами формата xacro. Этот формат позволяет переиспользовать существующие фрагменты URDF-описания робота, что упрощает создание и модификацию описания.
Шаги по добавлению нового робота:
Установка пакета робота
После установки пакета робота создайте файлxacro_args.yaml
в директории{description_package}/config/
. В этом файле необходимо указать аргументы для преобразования xacro-файла в URDF.Настройка запуска
Отредактируйте файлrbs_bringup/launch/rbs_bringup.launch.py
, указав параметры для запуска робота.Пример стандартной реализации:
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. Для базовых перемещений 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
.