Kinect / Primesense (Xtion) ROS Ubuntu через виртуальную машину (VMware)
Поскольку мне потребовалось довольно много времени, чтобы понять, как заставить Xtion (Primesense) работать на VMware, я решил поделиться этим здесь с вами. (С Kinect у меня проблема с тем, чтобы ROS увидел устройство, даже если VMware успешно подключил его).
roslaunch openni2_launch openni2.launch
Выполнение вышеуказанной команды дало мне ошибку:
Warning: USB events thread - failed to set priority. This might cause loss of data...
У меня либо один кадр, либо нет кадра при запуске "rviz" и "Добавить" -> "Изображение" -> "Тема изображения" -> /camera/rgb/image_raw
Так как же получить видеокадры в Ubuntu с устройства Primesense при использовании виртуальной машины (VMware)?
Мои характеристики
- Windows 7 под управлением VMware 10.0.4 build-2249910
- Ubuntu 12.04.5 Precise в VMware
- РОС Гидро
2 ответа
Следующий вопрос указал мне правильное направление: http://answers.ros.org/question/77651/asus-xtion-on-usb-30-ros-hydro-ubuntu-1210/?answer=143206
В ответе Blizzardroi (не выбранный ответ) он / она упоминает, что USBInterface должен быть 0. Я рассуждал, что, поскольку моей основной машиной является Windows, я должен установить UsbInterface на 1, что действительно решило эту проблему.
Решение
Перейдите в /etc/openni2/ (из системной папки, а не из Home) и откройте PS1080.ini с правами администратора (например, sudo gedit PS1080.ini). Найдите UsbInterface, удалите; и измените значение на 1. Это должно выглядеть так:
; USB interface to be used. 0 - FW Default, 1 - ISO endpoints (default on Windows), 2 - BULK endpoints (default on Linux/Mac/Android machines)
UsbInterface=1
дополнительный
Из предыдущего опыта также может быть связано, что вашей системе Windows могут также потребоваться драйверы Kinect. Если вышеперечисленное не работает, попробуйте установить следующее:
- (Kinect SDK) https://www.microsoft.com/en-us/download/details.aspx?id=34808
- (OpenNI2 Windows) http://structure.io/openni
ps Не забудьте свои драйверы для Ubuntu (замените hydro на вашу версию ROS)
sudo apt-get install ros-hydro-openni*
Важный
Ошибка не устраняется, но rviz возвращает видео, что означает, что мы можем прочитать данные, которые публикует устройство Primesense!
Warning: USB events thread - failed to set priority. This might cause loss of data...
Получил то же предупреждение от opennni (выдается при запуске двоичным файлом, расположенным в Tools/PSLinkConsole) с другим датчиком.
Решено, запустив процесс как sudo - мое предположение: чтобы установить приоритет для потоков событий USB, вам нужен root-доступ.:)