#qt #deployment #ros
#qt #развертывание #ros
Вопрос:
Итак, я создал приложение пользовательского интерфейса, используя Qt для ROS. Я хочу, чтобы пользовательский интерфейс в основном запускался в любой среде (Linux, Windows. Android или iOS). Мне нужно запустить пользовательский интерфейс в системах, в которых не установлен ROS. Итак, я разработал приложение пользовательского интерфейса с использованием Qt Creator и развернул приложение как AppImage. Идея состоит в том, чтобы запустить ros master в другой системе (master). Пользовательский интерфейс будет запущен в другой системе без ROS (подчиненной).
AppImage отлично работает в системах, в которых установлен ROS. В то время как в системах без ROS я получаю следующую ошибку при запуске AppImage:-
[rospack] Error: package 'image_transport' not found [librospack]: error while executing command terminate called after throwing an instance of 'pluginlib::ClassLoaderException' what(): Unable to find package: image_transport Aborted (core dumped)
image_transport — это всего лишь один из пакетов ROS, которые я использую. При развертывании приложение автоматически принимает libimage_transport.so как общая библиотека. Но я получаю эту ошибку rospack при запуске AppImage. Я предполагаю, что это проблема, связанная с ROS. Как я могу решить эту проблему, не устанавливая ROS?
Ответ №1:
Я предполагаю, что ROS просматривает расположение установки пакетов по умолчанию и не может найти image_transport
его, потому что вы libimagetransport.so
не находитесь в этом месте. Я не знаю, можете ли вы запустить программу, специфичную для ROS, без установки ROS.
Является ли image_transport первой из ваших зависимостей? Если да, возможно, другие будут выполнять то же самое выполнение после image_transport
.
Если нет, я бы уточнил, где связаны другие пакеты и в чем разница.
Комментарии:
1. image_transport — первая библиотека, которую я использовал. Я думаю, что другие библиотеки также выдадут ту же ошибку.