Предположим, что у меня есть метапакет ROS A с некоторыми сообщениями и другими метапакетами B с другими сообщениями. Возможно ли связывать A с B с помощью механизма msgs, не создавая зависимости друг от друга? Моя цель - позволить пользователю клонировать метапакет A и строить его полностью независимо от пакета B и симметрично клонировать пакет B и строить его независимо от пакета A и со стартовым конкретным узлом, позволяя передавать их с некоторым сложным сообщением. Возможно ли это?
Даниил
Насколько я знаю, это невозможно.
Пусть говорят, что пакет A использует тип сообщения, который определен в пакете B. Чтобы использовать этот тип сообщения, вам нужно включить сгенерированный заголовочный файл, что возможно только в том случае, если вы добавите B как зависимость от A.
Есть два решения, о которых я могу думать (насколько это возможно для вас, я не знаю):
Вы можете переместить все определения сообщений A и B в отдельный пакет C (который содержит только сообщения и ничего больше). Затем A и B должны зависеть от этого нового пакета C, но не имеют зависимости между собой.
Другим решением может быть использование только стандартных типов сообщений, которые уже определены ros. Это, конечно, только приемлемое решение, если данные, которые вы отправляете, соответствуют одному из стандартных типов сообщений.