runtime/docs/ru/add_new_robot.md

7.7 KiB
Raw Blame History

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

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

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

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

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

  2. Настройка запуска
    Отредактируйте файл 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, робот не сможет двигаться. Влияет на запуск файла control.launch.py.

  • scene_config_file
    Файл конфигурации сцены в формате 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.