![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_cam at Robotics Stack Exchange
![]() |
rmoss_cam package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_cam模块
简介
rmoss_cam
是rmoss_core
中的一个基础功能包,提供了usb相机ROS节点和虚拟相机ROS节点相关功能,同时,实现了一个camera C/S
模型,封装了图像获取等操作,只需要注重图像处理部分。主要实现功能如下:
- usb相机ROS节点 :获取usb相机图像,并发布成ROS topic (
sensor_msgs::msg::Image
). - 基于图片与视频的虚拟相机ROS节点:将视频或者图片发布成ROS topic (
sensor_msgs::msg::Image
). -
camera C/S
模型:CamServer
负责将相机获取的图像发布成ROS topic ,CamClient
负责订阅图像ROS topic,并调用callback
进行图像处理。
camera C/S
模型如下图所示:
同时相机节点支持二次开发,支持自定义相机扩展,该模块将相机操作(CamDevice
) 与相机ROS节点 (CamServer
) 进行解偶,对于不同的工业相机有不同的驱动,通过该相机接口,可以无需关心ROS部分,快速实现相机ROS节点, 支持ROS Composition方式启动, 详细介绍参考二次开发部分。
文件说明:
-
cam_interface.hpp
:定义通用相机设备接口 -
usb_cam.hpp/cpp
: usb相机设备实现。 -
virtual_cam.hpp/cpp
:虚拟相机设备实现,支持基于图片和基于视频两种方式。 -
cam_server.hpp/cpp
:CamServer
模块,负责将相机获取的图像发布成ROS topic,支持获取相机参数服务。 -
cam_client.hpp/cpp
:CamClient
模块,订阅图像ROS topic,并调用callback
进行图像处理。 -
usb_cam_node.hpp/cpp
,virtual_cam_node.hpp/cpp
: ROS顶层模块(基于UsbCam
,VirtualCam
和CamServer
),实现usb相机节点和虚拟相机节点。
快速使用
usb相机:
launch方式运行:
ros2 launch rmoss_cam usb_cam.launch.py #使用默认/dev/video0
- 参数在yaml文件中(
config/cam_params.yaml
)
虚拟相机:
launch方式运行图片虚拟相机:
ros2 launch rmoss_cam virtual_image_cam.launch.py #使用默认图片resource/test.png
- 可在launch文件中配置,图片路径
image_path
(必须),相机参数camera_k
,fps
等参数。
采用rqt_image_veiw
查看图像topic
ros2 run rqt_image_veiw rqt_image_veiw
命令行方式运行视频虚拟相机
ros2 run rmoss_cam virtual_cam --ros-args -p "video_path:=/home/ubuntu/test.avi"
- 至少需要一个参数
video_path
ROS Composition启动
launch方式运行dynamic composition测试demo
ros2 launch rmoss_cam composition.launch.py
- 先创建容器
rmoss_container
,然后将相机节点rmoss_cam::VirtualCamNode
以及图像任务节点ImageTaskDemoNode
加载到容器中,支持继续加载多个节点。
Tip: 容器内一般加载多个节点,需要采用多线程模型,因此容器类型一般使用
component_container_mt
或者component_container_isolated
,component_container_isolated
性能目前表现最好。
使用例子可参考image_task_demo_node.hpp/cpp
。
二次开发
cam_interface接口
- 整个相机模块通过
CamInterface
接口,该接口定义了设备规范,实现了模块的可扩展性,以下为接口API
//接口
virtual bool open() = 0; // 打开设备
virtual void close() = 0; // 关闭设备
virtual bool is_open() = 0; //检测设备是否打开
virtual bool grab_image(cv::Mat & imgae) = 0; //获取图像
virtual bool set_parameter(CamParamType type,int value) = 0; //设置参数
virtual bool get_parameter(CamParamType type,int& value) = 0; //获取参数
virtual std::string error_message() = 0; // error message when open(),grab_image(),set_parameter(),get_parameter() return false.
相机接口运行模型 (简化模型,不考虑运行时修改参数)
- 一般运行流程:
set_parameter()
->open()
->grab_image()
->close()
- 参数设置应该在相机关闭下进行设置,若需要修改相机参数(如曝光),需要先重启相机进行设置,即:
close()
->set_parameter()
->open()
- 参数set和get方法可以参考
UsbCam
和VirualCam
的实现,采用unordered_map
存储参数。
相机参数(CamParamType)说明:
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common | |
ament_index_cpp | |
rclcpp | |
rmoss_interfaces | |
rmoss_util | |
sensor_msgs | |
cv_bridge | |
camera_info_manager | |
image_transport |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
rmoss_auto_aim | |
rmoss_core |