-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Не запускается #9
Comments
Если сразу умирает, скорее всего, нет прав на доступ к порту или неправильное имя порта в конфигурации. Пришлите полный лог, если есть. |
Итак. Я работаю в WSL. Установлена Ubuntu 20.04. Ros Noetic. master.log roslaunch witmotion_ros witmotion.launch started roslaunch server http://MAKUSHIN:34635/ SUMMARYPARAMETERS
NODES auto-starting new master setting /run_id to bccccd92-0ca2-11ed-86ad-00155d57dcbf |
@tohax для 200 Гц нужно:
Попробуйте поэкспериментировать с параметрами, чтобы определить, какой точно режим на данный момент установлен на вашем датчике. По умолчанию на WT901C порт устанавливается в 9600 бод с частотой выдачи пакетов 10 Гц. На данный момент приложение-контроллер, поддерживающее выдачу команд на сенсоры семейства WT901C находится в стадии разработки (надеюсь добавить его через несколько дней). Можно воспользоваться кодами команд из заголовка библиотеки низкого уровня |
Изначально, в программе под Windows, которая шла с модулем WT901C, я установил значения 115200 и 200hz. При использовании других драйверов для ROS модуль подключается и передает данные. Отложим частоту 200hz. Хочется заставить мой WT901C работать с вашим драйвером хоть с какой-нибудь частотой. Что еще может быть причиной ошибки, описанной ранее? Спасибо. |
Код -11 это Segmentation Fault. Попробуйте собрать отдельно библиотеку низкого уровня и запустить из нее приложение |
@tohax только что тестировал мой бескорпусный WT901, стабильно работает на 100 Гц, 115200 бод, 10 мс таймер, но в чистом Linux |
@tohax еще можно попробовать в каталог |
"Попробуйте собрать отдельно библиотеку низкого уровня и запустить из нее приложение message-enumerator с ключами --baudrate 115200 и --poll 20. Тогда сразу поймем, что не так с портом. Возможно, есть проблемы с установкой Qt, возможно, неправильный линк из Windows." Как это сделать, я, к сожалению, не знаю. Подскажите команду, пожалуйста. Клонировал ветку main, так как "git clone -recursive" не клонировал witmotion-uart-qt. Еще, во время сборки драйвера, идут ошибки по Qt::endl, Qt::hex, Qt:dec. Пришлось везде убрать "Qt::". У меня Версия Qt 5.12. Может в этом причина? |
@tohax тогда все, скорее всего, из-за того, что библиотека не клонируется в нужный каталог сборки. Раз ее нет, подключать нечего, и возникает ошибка вызова по адресу функции. Попробуйте повторить клон, либо командой
либо такими командами:
Тогда клон подхватит нужные модули. В любом случае, каталог На Qt 5.12.1 я тестировал, с пространствами имен проблем нет. Возможно, ваша установка ROS перекрыла пути к библиотекам Qt разных версий в Windows Linux Subsystem. Для чистоты эксперимента, я попробовал бы собрать отдельно ROS Workspace с библиотекой в контейнере Docker, либо виртуальной машине с Ubuntu, на которой установлен ROS. |
Попробуйте в файле конфигурации отключить публикацию всех сообщений, кроме IMU. Можете скопировать сюда ваш конфиг? Посмотрим соответствие публикуемых данных настройкам. Я проверил сейчас подключение библиотеки в ROS, все работает. Бампнул коммит в репозиторий, можно повторно сделать клон. Еще посоветую после реклона ДО запуска |
@tohax есть вероятность, что все так, просто в Ubuntu сломалась установка Qt. У вас |
Библиотеку можно проверить так: в отдельном каталоге вне ROS:
После этого ждем, будет ли мигать светодиод адаптера UART, потом жмем |
@tohax вот мой вывод этой программы, запущенной со слишком низким периодом опроса (10 мс, ~100 Гц). Датчик WT901, без корпуса, подключенный на внешний адаптер USB-UART с поддержкой скоростей до 256000 бод.
|
./message-enumerator --device ttyUSB0 --baudrate 115200 --poll 10 WITMOTION UART MESSAGE ENUMERATOR BY TWDRAGON Acquired at Tuesday, 26 July 2022 18:03:31 +05 ID Qty Description 0x50 1 Real Time Clock
Total messages: 3 О5 пришлось удалять Qt:: |
Это значит, что реальная частота выдачи данных на датчике меньше 100 Гц (на практике, там скорее всего, 10-20 Гц). Программа реагирует, если таймер сработал вхолостую более 3 раз. Попробуйте подобрать значения таймера ( С |
|
Это значит, что реальная частота выдачи данных на датчике меньше 100 Гц (на практике, там скорее всего, 10-20 Гц). |
Вот этот вроде, выдавал до 250 Гц Если будет успешный тест WT901 на 200 Гц (правда, это явно предел для китайцев), выложу его сюда |
Спасибо большое! |
@tohax в дополнение: сейчас пытался заставить работать WT901 с помощью команд из официальной документации(!) Результат нулевой: датчик стоит на 9600 бод, 10 Гц. На команды конфигурации не реагирует. Сейчас написал китайцам, пусть разбираются |
Да, хорошо. Ждем ответа. Скачал последний commit. Qt::hex ругается. |
Победим в следующем коммите |
@tohax протестил WT901, настроенный с помощью приложения-контроллера на 115200 бод, 200 Гц. Удалось на 7-10 мс периоде опроса вытянуть на теме ROS 180 Гц. Больше, видимо, не получится - сенсор не успевает выдавать нужное количество пакетов до следующего запроса ядра к порту. Как я и говорил, фактическое временное разрешение этого датчика - не более 175 Гц, максимальное - оценочно до 190, больше даже производитель не заявляет. |
А если поднять до 230400-921600 бод? Официальное приложение позволяет выставить. Или это не повлияет? |
Думаю, влияния не будет от слова "совсем". |
[witmotion_imu-2] process has died [pid 16036, exit code -11, cmd /home/tohax/ws_core/devel/lib/witmotion_ros/witmotion_ros_node __name:=witmotion_imu __log:=/home/tohax/.ros/log/7c5c6e64-0c13-11ed-b4bf-00155d39e248/witmotion_imu-2.log].
log file: /home/tohax/.ros/log/7c5c6e64-0c13-11ed-b4bf-00155d39e248/witmotion_imu-2*.log
В чем может быть причина? Ros noetic, модуль WT901C.
The text was updated successfully, but these errors were encountered: