Как избежать ошибки rospack в среде, где ROS не установлен?

#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 — первая библиотека, которую я использовал. Я думаю, что другие библиотеки также выдадут ту же ошибку.