Как правильно реализовать архитектуру ROS2 (rclcpp, rcl, rmw) - PullRequest
0 голосов
/ 11 октября 2019

Я новичок в ROS2 и C ++ и могу помочь понять, как работает архитектура ROS 2. Я хочу внедрить QoS-событие в простую программу болтовни, и с моими базовыми знаниями я могу сделать следующий график:

CODE (publisher.cpp) ==> RCLCPP (qos_event.cpp), включая (qos_event). hpp) ==> RCL (event.c) это включает в себя (event.h) ==> RMW (event.c) это включает в себя (event.h) ==> DDS

У меня есть следующие вопросы:

  1. Если я правильно понимаю, заголовочные файлы используются как своего рода библиотека. Так что, если вы включите их в свою программу, вы можете использовать все функции, которые вы хотите. Это означает, что мне не нужно использовать этот код в моей программе, но мне нужно только реализовать эти функции? Являются ли следующие файлы: qos_event.cpp / rcl event.c / rmw event.c примеры кода, который я могу использовать в своей собственной программе?

  2. Настройки качества обслуживания (QoS)объявлены в промежуточном программном обеспечении Ros (rmw). Если я хочу использовать одно из этих событий, могу ли я просто напрямую использовать заголовочный файл rmw / event.h или мне нужно уважать архитектуру и возможно ли реализовать код rclcpp только в вашей программе?

1 Ответ

0 голосов
/ 17 октября 2019

1) Как правило, заголовочные файлы имеют объявления функций, которые вы можете использовать, а файлы .c или .cpp имеют их определение, показывающее, как на самом деле реализована функция. Это может быть хорошей отправной точкой для этого. Чтобы использовать эти функции в вашем исполняемом файле или библиотеке, вы должны добавить эти зависимости через CMakeLists.txt и package.xml (совершенно новый мир для начинающих c ++).

2) Об этом ... IЯ бы порекомендовал проверить этот git из ROS2 и изучить, как эти функции использовались.

Обычно люди говорят изучать c ++ перед использованием ROS Framework, это действительно хороший совет.

...