У меня есть проект, который включает в себя простую последовательную связь с прокси-сервером с использованием предопределенного небольшого подмножества сообщений MAVLink и ROS / MAVROS.
Я работаю на своем собственном встроенном железном оборудовании ARM Cortex F4 безлежащая в основе операционная система (кроме моей собственной инфраструктуры, которая поддерживает последовательные соединения и другие аппаратные операции ввода-вывода и т. д.).
Что касается аспекта MAVLink этой задачи, процесс выглядит относительно простым.Идентификаторы сообщений предопределены, а файлы заголовков MAVLink (сгенерированные из XML) содержат функции упаковки и сериализации.Я успешно реализовал и протестировал этот аспект.
Однако я изо всех сил пытаюсь достичь той же функциональности с ROS и MAVROS.
Я заметил, что дистрибутив MAVROS содержит заголовочные файлы, которые определяют MAVROSсообщения и преобразование в / из сообщений MAVLink.
Следующие пункты обозначают процесс, который я пытаюсь понять.
- Сообщение получено в виде пакета MAVLink, как мне это сделать?определить, действительно ли это сообщение ROS / MAVROS?Я предполагаю, что идентификатор сообщения MAVLink будет отличаться от стандартных сообщений MAVLink, но я не могу найти никакой информации об этом.
- Как только я узнаю, что это сообщение ROS / MAVROS, я могу преобразовать его, используя преобразование MAVLink в MAVROS.код, определенный в дистрибутиве MAVROS (как упомянуто выше).
- Теперь, когда у меня есть сообщение MAVROS, как я могу определить фактический тип сообщения, проанализировать и извлечь его полезную нагрузку?Я предполагаю, что это относится к первому пункту (идентифицирующему сообщения ROS / MAVROS).
- Аналогично, как мне отменить этот процесс, чтобы создать сообщение MAVROS из требуемой полезной нагрузки для определенного типа сообщения ROS?Его последующее преобразование в MAVLink и сериализация просты, как описано выше.
В конечном итоге все, что я хочу сделать, - это сериализовать и десериализовать небольшое подмножество сообщений ROS / MAVROS без необходимости большой структурынакладные расходы.Хотя информация, позволяющая мне сделать это с помощью MAVLink, легко доступна и проста в реализации, я не могу найти эквивалентную информацию, необходимую мне для реализации той же функциональности с сообщениями ROS / MAVROS.
Любая помощь или разъяснение будет оченьДобро пожаловать!
Большое спасибо!