在windows使用参考:
- ros_msft_camera功能包
微软物联网(含ROS)开源代码参考:
- https://github.com/ms-iot
原文讲解详细具体,直接参考英文文档即可。
- ROS1Melodic+ROS2Foxy
ROS2Foxy:
- https://github.com/ms-iot/ros_msft_camera/tree/foxy-devel
该ROS节点使用Windows Media Foundation的帧服务器有效地处理摄像机帧。该节点使用MF SourceReader API从摄像机读取帧。节点从摄像机选择第一个可用的视频流。大多数USB摄像机只有一个视频流。节点使用image_transport相机发布者发布image_raw主题。
系统要求
- Microsoft Windows 10 64位
- ROS2安装(推荐Foxy)
入门
要运行此驱动程序,将需要安装相机并准备在系统上使用它。
可以从以下启动文件开始。它将打开RViz工具,可以在其中查看相机的图像流。
ros2 launch win_camera win_camera.launch.py
此外,该驱动程序已注册为ROS 2组件,它可以在组件容器内运行。下面是用法的演示。
ros2 launch win_camera win_camera_components.launch.py
发布的主题
- /image_raw (sensor_msgs/msg/Image)
来自相机的图像流。
参量
-
~image_width(整数,默认:640)
所需的捕获图像宽度。
-
~image_height(整数,默认:480)
所需的捕获图像高度。
-
~frame_rate(浮动,默认:30.0)
所需的捕获帧速率。
-
~videoDeviceId (字符串,默认值:``)
打开相机的符号链接。如果未设置,则默认为系统上的第一个枚举相机。
-
~camera_info_url (字符串,默认值:``)
网址至具有相机失真参数的yaml文件。
备注
此源还包含相机组件,以使IMFSample指针可以直接共享到另一个组件容器中,而使用相同的过程可以实现零复制并共享GPU表面。通过使用MFSample Publisher(通过自定义msg发布IMFSample指针)来启用此功能。这条路径是实验性的。