Skip to main content

Инструкция по добавлению нового робота в фреймворк Robossembler ROS 2

Прежде всего необходимо скачать пакет робота, содержащий файлы xacro или urdf, а также файлы геометрии робота в формате .stl, .dae, .obj и других.

Перед началом работы важно ознакомиться с основными аспектами формата xacro. Этот формат позволяет переиспользовать существующие фрагменты URDF-описания робота, что упрощает создание и модификацию описания.

Шаги по добавлению нового робота:

  1. Установка пакета робота
    После установки пакета робота создайте файл xacro_args.yaml в директории {description_package}/config/. В этом файле необходимо указать аргументы для преобразования xacro-файла в URDF.

  2. Настройка запуска
    Отредактируйте файл 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.