Библиотека синтаксического анализа XML RSI(формат робота KUKA) в boost C++?

Я анализирую данные XML rsi из Kuka Robot и использую их для взаимодействия робота с контроллером. Мне нужно знать, какой анализатор XML будет использоваться для этого анализа в библиотеке boost C++?

2 ответа

Решение

Ответ: нет, здесь нет синтаксического анализатора XML, не говоря уже о конкретном формате KUKA RSI.

Вы можете использовать RapidXML (который лежит в основе XML-интерфейса Boost Property Tree). Мой личный фаворит для небольших задач - PugiXML. Вы должны посмотреть совет решения здесь:

Для дальнейшего использования, если кто-то задаст этот вопрос:

Увеличение

Предполагается, что Boost останется общей библиотекой, и поэтому синтаксический анализ XML - не самая важная его функция. Тем не менее, как предлагается PropertyTree с руководством здесь, в Boost, которое предназначено для общего формата данных древовидной структуры (например, json или XML).

XML

При этом я не рекомендую использовать boost для разбора XML-структур в целом. Вы можете использовать, как снова предложено, несколько небольших библиотек, специально разработанных для эффективного и быстрого анализа строк XML, опять же, как было предложено. Какой синтаксический анализатор XML следует использовать в C++?,

Интерфейс робота-сенсора KUKA (RSI)

Не пытайтесь заново изобрести колесо. Есть даже библиотеки для разбора XML-структуры RSI. ROS Industrial уже имеет очень хороший интерфейс RSI под названием kuka_experimental Пакет доступен здесь и на сайте ROS. Это не только удовлетворяет вашу потребность в синтаксическом анализе XML, но и позволяет управлять роботом с помощью UDP-связи, кинематической модели и т. Д. Если вам это не нравится, вы можете разработать свой собственный после прочтения кода и изучения его работы.

Этот пакет использует TinyXML, легкую библиотеку XML, которая, на мой взгляд, довольно быстрая и простая в использовании. Файлы о том, как выполняется разбор, доступны в kuka_rsi_hw_interface здесь. Если вас это не устраивает, вы все равно можете использовать другую библиотеку XML или даже обновить этот пакет для работы с TinyXML2, который должен быть еще более эффективным с использованием памяти и быстрее. Если вы используете систему сборки CMake, вы можете легко добавить TinyXML в качестве подмодуля в ваш пакет.

Я не знаю формат KUKA RSI, но вы можете читать и записывать данные в формате XML с помощью PropertyLibrary.

Смотрите здесь: http://www.boost.org/doc/libs/1_65_1/doc/html/property_tree.html

Другие вопросы по тегам