我有一个包含ubuntu 20.04和ROS Noetic的docker容器,我正试图用它控制IDS中的Ueye相机。为此,我下载了ROS的Ueye_cam包:http://wiki.ros.org/ueye_cam和image_pipeline包:http://wiki.ros.org/image_pipeline我还在IDS网站上下载了与我的相机对应的软件包,并按照教程进行了安装:https://www.thorlabs.com/software/THO/ThorCam/Linux/Readme_uEye_Linux_4.90.06.html
当我尝试运行$ roslaunch ueye_cam rgb8.launch
时我收到以下错误消息:
[ERROR] [1626351965.262425900]: No UEye cameras are connected
[ERROR] [1626351965.262560700]: Hint: make sure that the IDS camera daemon (/etc/init.d/ueyeusbdrc) is running
[ERROR] [1626351965.262743000]: Failed to initialize [camera]
我跑了:
$ /usr/bin/ueyeusbd start
得到:
IDS ueyeusbd 4.94.1557 64bit build Apr 30 2021 08:04:32 ( cmdl cap scq )
并运行:
$ /etc/init.d/ueyeusbdrc start
并得到错误:
Starting ueyeusbd... IDS ueyeusbd 4.94.1557 64bit build Apr 30 2021 08:04:32 ( cmdl cap scq )
ueyeusbd is not running.
我尝试遵循此解决方案:如何在docker容器中运行服务,以便使用gstreamer从IDS uEye相机获取提要?但它不起作用,因为我的windows主机上没有/var/。
我也试过:
systemctl start ueyeusbdrc
但我得到了这个错误:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
有人知道是否可以通过包含ROS1的docker从连接到windows主机的IDS控制ueye相机吗?
如果没有,你知道是否有可能用ROS2包控制ueye相机,因为我已经有了相应的ROS2驱动程序吗?
对我有效的解决方案是以下
在docker命令中添加一些选项。将这些参数添加到docker命令中解决了问题:
--privileged-v/dev/bus/usb:/dev/bus/usb
--ipc=host
--pid=host
-v/var/run:/var/run
-v/usr/usr
。。。
另一个关键部分是在主机上安装IDS软件。并确保IDS uEye摄像头的系统服务正在主机中运行(sudo systemctl启动ueyeusbdrc(并通过主机上的IDS管理器软件启用docker功能
部分解决方案的灵感来自这篇文章如何在docker容器中运行服务,以便使用gstreamer从IDS uEye相机获取提要?
希望这会有所帮助Btw仅用ROS(1(测试了该溶液