Независимые пакеты ROS

0

Предположим, что у меня есть метапакет ROS A с некоторыми сообщениями и другими метапакетами B с другими сообщениями. Возможно ли связывать A с B с помощью механизма msgs, не создавая зависимости друг от друга? Моя цель - позволить пользователю клонировать метапакет A и строить его полностью независимо от пакета B и симметрично клонировать пакет B и строить его независимо от пакета A и со стартовым конкретным узлом, позволяя передавать их с некоторым сложным сообщением. Возможно ли это?

Даниил

Теги:
ros

1 ответ

1

Насколько я знаю, это невозможно.

Пусть говорят, что пакет A использует тип сообщения, который определен в пакете B. Чтобы использовать этот тип сообщения, вам нужно включить сгенерированный заголовочный файл, что возможно только в том случае, если вы добавите B как зависимость от A.

Есть два решения, о которых я могу думать (насколько это возможно для вас, я не знаю):

  1. Вы можете переместить все определения сообщений A и B в отдельный пакет C (который содержит только сообщения и ничего больше). Затем A и B должны зависеть от этого нового пакета C, но не имеют зависимости между собой.

  2. Другим решением может быть использование только стандартных типов сообщений, которые уже определены ros. Это, конечно, только приемлемое решение, если данные, которые вы отправляете, соответствуют одному из стандартных типов сообщений.

  • 0
    Я уже использую первое решение, которое вы упомянули. Он чистый и компактный, но я «чистец кода» и надеялся, что есть какой-то другой механизм. Так как мой первый метапакет я хочу обнародовать, а второй - только для моих личных целей, мы (вся группа) решили разместить сообщение в одной и той же форме в обоих метапакетах. Это позволяет авторам использовать эти сообщения в качестве выходных данных первого метапакета, и если я хочу создать оба проекта, я просто добавляю CATKIN_IGNORE к одному из узлов сообщений, и все работает как чудо. Спасибо, в любом случае!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню