Компиляция
Установите компоненты Qt5 Core и Network. Команды установки зависят от дистрибутива Linux; в следующем примере используется Ubuntu:libzip со страницы загрузки libzip в соответствии с официальной инструкцией.
Скомпилируйте пакет ROS из /V2-ROS-SDK-service, расположенного на одном уровне с src:
Запуск
Выполните следующие команды изhome/username/V2_ROS_SDK, расположенного на одном уровне с src:
Интерфейсы топиков ROS
Перед проверкой интерфейса включите камеру и подождите около 30 секунд, пока запустится встроенная программа. Затем запустите узел ROS SDK.Получение позы локализации
ROS непрерывно получает от камеры значенияx, y и theta, публикует эти значения и кватернион, преобразованный из theta, в LxCamera_LocationPoseResult, а также передает позу через TF.
Получение состояния локализации
ROS получает состояние локализации камеры (true или false) с частотой 1 Гц и публикует его как std_msgs::Bool в LxCamera_LocationResult.
Получение информации об использовании хранилища камеры
ROS получает коэффициент использования хранилища камеры с частотой 2 Гц и публикует его какstd_msgs::Float32 в LxCamera_Capacity_Status.
Получение имени неисправного модуля
ROS получает от камеры имя неисправного модуля и публикует его какstd_msgs::String в LxCamera_Module_Error.
Получение состояния построения карты
После начала построения карты ROS публикует его состояние какstd_msgs::Bool в LxCamera_MappingState.
Получение хода построения карты
После начала построения карты ROS публикует ход выполнения (0–100) как std_msgs::Int32 в LxCamera_Mapping_Progress.
Задание параметров
Опубликуйте сообщениеstd_msgs/String в LxCamera_SetParam. Сообщение содержит девять чисел с плавающей точкой, разделенных запятыми: x,y,z,yaw,pitch,roll,x,y,yaw. Первые шесть значений задают позу камеры, последние три — позу LiDAR. После успешного обновления соответствующие значения в разделах [Laser1] и [Camera1] файла /home/fr1511b/hontai/params/config_install_FL21500HAF.ini обновляются.
Переключение карт
Опубликуйте вLxCamera_SwitchMap сообщение std_msgs/String с именем готовой карты. Обновите веб-интерфейс камеры. Если отображаемое имя карты изменилось, переключение выполнено успешно.
Передача одометрии
- Опубликуйте данные
nav_msgs::Odometryв/sim/odom(топик можно изменить).
Загрузка контурной карты
- Опубликуйте сообщение
std_msgs/StringвLxCamera_DownloadMap. - Сообщение содержит абсолютный путь на хост-компьютере и имя карты, разделенные запятой. Имя карты — это имя файла
.zipготовой карты на камере. - После успешной загрузки по указанному пути на хост-компьютере появится архив карты. Распакуйте его, чтобы получить файл карты
PGMи файл конфигурацииYAML.
Загрузка ZIP-файла карты (новое)
- Опубликуйте сообщение
std_msgs/StringвLxCamera_UploadMapZip. - Сообщение содержит путь к архиву карты для загрузки, например
/home/fr1511b/map.zip. Используйте архив, загруженный через интерфейс загрузки карт. - Если карта найдена, SDK отправляет ее на камеру. Камера распаковывает ее в
/home/fr1511b/hontai/map/.
Повторная локализация
- Опубликуйте данные
geometry_msgs::PoseWithCovarianceStampedвLxCamera_UploadReloc. - Поза содержит позу LiDAR:
x,yиyaw. - Повторная локализация выполнена успешно, если позиция в веб-интерфейсе камеры обновилась до отправленной позы.
Кватернионы имеют ограничения, поэтому их нельзя заполнять произвольно. Используйте конвертер угла Эйлера в кватернион, чтобы преобразовать уголEuler yawв значения кватернионаxyzw.
Интерфейсы сервисов ROS
Построение карт, переключение карт, загрузка карт и повторная локализация также доступны через сервисы ROS. Ответ сервисаtrue означает успех, а false — ошибку. Для операций, требующих подтверждения, используйте интерфейс сервисов.
Используйте
rosservice call для следующих команд. Имена карт не должны начинаться с цифры и не должны превышать 30 символов.Построение карты
Имя сервиса:/lx_localization_node/LxCamera_Mapping_srv
Определение сервиса:
Переключение карт
Имя сервиса:/lx_localization_node/LxCamera_SwitchMap_srv
Определение сервиса:
Загрузка карты
Имя сервиса:/lx_localization_node/LxCamera_DownloadMap_srv
Определение сервиса:
Повторная локализация
Имя сервиса:/lx_localization_node/LxCamera_UploadReloc_srv
Определение сервиса:
Получение имени текущей карты
Имя сервиса:/lx_localization_node/LxCamera_GetCurMapname_srv
Определение сервиса:
Получение списка текущих карт
Имя сервиса:/lx_localization_node/LxCamera_GetMapList_srv
Определение сервиса:
Выход из режима построения карты (пользовательский интерфейс)
Имя сервиса:/lx_localization_node/LxCamera_ExitMapping_srv
Определение сервиса:
Удаление карты
Имя сервиса:/lx_localization_node/LxCamera_EraseMap_srv
Определение сервиса:
Загрузка тепловой карты
Имя сервиса:/lx_localization_node/LxCamera_DownloadMap_srv
Определение сервиса:
Инкрементальное построение карты
Имя сервиса:/lx_localization_node/LxCamera_IncMapping_srv
Определение сервиса: