如何通过docker使用带有ROS的IDS的ueye相机



我有一个包含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(测试了该溶液

相关内容

  • 没有找到相关文章

最新更新