跳到主要内容

传感器功能清单

1. Sensor能力边界:​

1.1. 整体框架​

1.2. 参数配置查询​

1.2.1. Service 概览表​
Service介绍service_type配置要点配置详情
/set_camera_option动态设置相机参数(gain/exposure/brightness/white_balance 等),发送 camera_options.json 全文,按 sensor_id 路由到对应传感器插件的 ApplySensorOptionFromJson()rcl_interfaces/srv/SetParameters请求体为 SetParameters,第一个 parameter 的 string_value 携带 JSON 全文JSON / Schema
/sensor/sensor_vla_camera/sensor_version查询所有已注册传感器的版本信息(固件版本、设备型号等)robby_sensor_msgs/srv/GetSensorVersionsservice 名按 module_name 动态拼接,每个 RobbySensorCenter 进程对应唯一服务名JSON / Schema

1.3. Service​

1.3.1. 通信配置 JSON:set_camera_option​
{
"channels": {
"set_camera_option_rpc": {
"type": "hybrid_rpc",
"hybrid_rpc": {
"service_prefix": "/",
"enable_shm": false,
"enable_ros2": true,
"auto_route": false,
"default_timeout_ms": 2000
},
"ros2": {
"service_prefix": "/",
"service_type": "rcl_interfaces/srv/SetParameters"
}
}
}
}

调用 method:set_camera_option;service_prefix 与 method 拼接为完整服务名。此配置为 RFrame 客户端接入模板,服务端在 Sensor Center 中使用原生 ROS2 注册;2000ms 是客户端超时示例,不是服务端保证。

服务名说明:代码注册相对名称 set_camera_option,默认根命名空间下为 /set_camera_option;若部署使用 ROS 命名空间或 remap,需同步调整。节点的 /SensorCenterNode0x54/set_parameters 是标准参数服务,不能替代这里的业务回调。

1.3.1.1. 类型Schema​

类型:rcl_interfaces/srv/SetParameters

来源:rcl_interfaces

# A list of parameters to set.
Parameter[] parameters

---
# Indicates whether setting each parameter succeeded or not and why.
SetParametersResult[] results
1.3.1.2. 类型 Schema​

类型:rcl_interfaces/msg/Parameter

来源:rcl_interfaces

# This is the message to communicate a parameter. It is an open struct with an enum in
# the descriptor to select which value is active.

# The full name of the parameter.
string name

# The parameter's value which can be one of several types, see
# `ParameterValue.msg` and `ParameterType.msg`.
ParameterValue value
uint8 type
bool bool_value
int64 integer_value
float64 double_value
string string_value
byte[] byte_array_value
bool[] bool_array_value
int64[] integer_array_value
float64[] double_array_value
string[] string_array_value
1.3.1.3. 类型 Schema​

类型:rcl_interfaces/msg/SetParametersResult

来源:rcl_interfaces

# A true value of the same index indicates that the parameter was set
# successfully. A false value indicates the change was rejected.
bool successful

# Reason why the setting was either successful or a failure. This should only be
# used for logging and user interfaces.
string reason

请求 JSON 结构(string_value 载荷):

{
"camera_set_option": [
{
"sensor_id": "0x1",
"color": {
"gain": 0,
"brightness": 0,
"exposure": 156,
"white_balance": 3800,
"gamma": 150,
"auto_exposure": false,
"auto_white_balance": false
},
"depth": {
"gain": 20,
"exposure": 4500,
"auto_exposure": false,
"laser_contrl_bool": true
},
"ir": {
"gain": 20,
"exposure": 4500,
"brightness": 0,
"auto_exposure": false
}
}
]
}

调用示例

# 将 sensor_id=0x1 的 Color 流曝光设为 156,关闭自动曝光
ros2 service call /set_camera_option rcl_interfaces/srv/SetParameters \
"{parameters: [{name: 'camera_option', value: {type: 4, string_value: '{\"camera_set_option\": [{\"sensor_id\": \"0x1\", \"color\": {\"exposure\": 156, \"auto_exposure\": false}}]}'}}]}"

语义说明:请求体为标准 SetParameters,第一个 parameter 的 string_value 携带 camera_options.json 全文。回调解析 JSON 中的 camera_set_option 数组,按 sensor_id 路由到对应传感器插件的 ApplySensorOptionFromJson()。color / depth / ir 各 section 字段可独立设置,仅传需要修改的字段即可。

1.3.2. 通信配置 JSON:sensor_version​
{
"channels": {
"sensor_version_rpc": {
"type": "hybrid_rpc",
"hybrid_rpc": {
"service_prefix": "/sensor/sensor_vla_camera/",
"enable_shm": false,
"enable_ros2": true,
"auto_route": false,
"default_timeout_ms": 2000
},
"ros2": {
"service_prefix": "/sensor/sensor_vla_camera/",
"service_type": "robby_sensor_msgs/srv/GetSensorVersions"
}
}
}
}

调用 method:sensor_version;service_prefix 与 method 拼接为完整服务名。此配置为 RFrame 客户端接入模板,服务端在 Sensor Center 中使用原生 ROS2 注册;2000ms 是客户端超时示例,不是服务端保证。

1.3.2.1. 类型Schema​

类型:robby_sensor_msgs/srv/GetSensorVersions

来源:RTypes:robby_sensor_msgs/srv/GetSensorVersions.srv

# GetSensorVersions.srv

# Request
string sensor_type # 传感器类型
---
# Response
bool success # 请求是否成功
string version # 版本信息(json格式)

返回 JSON 结构:

{
"HeadMonoDepthCamera": {
"firmware_ver":"1.6.00",
"hw_ver":"0.1",
"sn":"CP2BC53000H3"
},
"LeftWristMonoDepthCamera": {
"firmware_ver":"1.0.70",
"hw_ver":"0.1",
"sn":"CV2R46P0005T"
}
}

调用示例

# 查询当前模块下所有传感器的版本
ros2 service call /sensor/sensor_vla_camera/sensor_version robby_sensor_msgs/srv/GetSensorVersions "{sensor_type: ''}"

语义说明:请求包含 sensor_type,但当前 Sensor Center 回调未读取该字段,不按其过滤;返回 success 和 version 字段。版本记录为空时 success=false、version 为空字符串;否则 success=true,预期但未取得版本的设备值为 null。version 为 JSON 字符串,键为 sensor_tag(传感器唯一标识),值包含firmware_ver,hw_ver,sn 。

1.3.3. 主配置说明​

配置路径为:/opt/robby/robby-sensor-center/config/robby_r2_fun/sensor_center/sensor_global_cam_pvt.json

修改完配置之后,重启robby-sensor-center.service服务( sudo systemctl restart robby-sensor-center.service)

配置字段类型默认值含义可选值 / 示例
sync_enableboolfalse是否启用多相机硬件同步。启用后,多台相机通过硬件信号触发实现帧级同步true(启用)/ false(禁用)
sync_modestring无同步模式,仅在 sync_enable=true 时生效。决定本相机在同步链路中的角色"slave"(从机同步)/ "master"(主控输出触发信号)/ "sw_trigger"(软件触发)
enable_colorboolfalse是否启用 Color(彩色)数据流true / false
enable_depthboolfalse是否启用 Depth(深度)数据流true / false
enable_irboolfalse是否启用 IR(红外)数据流,包含 Left IR + Right IR 双流true / false
time_srcstring"system_time"帧时间戳来源。决定每帧 time_stamp 字段使用系统时间还是相机硬件时间"system_time"(主机系统时间)/ "camera_time"(相机全局时间戳 getGlobalTimeStampUs())
d2c_enablebooltrue是否启用 Depth-to-Color 空间对齐。将深度图坐标系对齐到彩色图坐标系,需同时启用 color 和 depth 流true(对齐)/ false(不对齐)
filter_max_diffint32256深度噪声滤波最大差异阈值。设置 OrbbecSDK OB_PROP_DEPTH_NOISE_REMOVAL_FILTER_MAX_DIFF_INT,相邻像素深度差超过此值视为噪声并滤除256(默认)/ 128(更严格)/ 512(更宽松)/ 0(关闭滤波)
filter_max_speckle_sizeint32300深度噪声滤波最大斑点尺寸。设置 OB_PROP_DEPTH_NOISE_REMOVAL_FILTER_MAX_SPECKLE_SIZE_INT,连续噪声区域面积超过此值时被滤除300(默认)/ 150(更积极滤除)/ 600(更保守)/ 0(关闭)
tegra_jpegboolfalse是否使用 NVIDIA Tegra 硬件 JPEG 编码器(仅 ARM64/Orin 平台生效)。开启后 Color 流 JPEG 编码走 GPU 硬件加速,降低 CPU 负载true(启用 Tegra 硬件编码)/ false(使用 CPU 编码)
color_widthint0Color 流分辨率宽度(像素)1280 / 640 / 848 / 1920
color_heightint0Color 流分辨率高度(像素)720 / 480 / 530 / 1080
color_fpsint0Color 流目标帧率(fps)。注意:hw_trigger 模式下代码会强制覆盖为 1030 / 10 / 15 / 60
depth_widthint0Depth 流分辨率宽度(像素)1280 / 640 / 848 / 800
depth_heightint0Depth 流分辨率高度(像素)720 / 480 / 530 / 576
depth_fpsint0Depth 流目标帧率(fps)。注意:hw_trigger 模式下代码会强制覆盖为 1030 / 10 / 15 / 60

字段依赖关系说明:

  • sync_mode 仅在 sync_enable=true 时生效
  • d2c_enable=true 需要同时 enable_color=true 且 enable_depth=true
型号品牌
Gemini 335LOrbbec
Gemini 335Orbbec
Gemini 335Orbbec
Gemini 305LOrbbec
Gemini 305Orbbec
Femto BoltOrbbec
RealSense D405Intel
RealSense D415Intel
RealSense D435Intel
RealSense D455Intel

注:335 与 305 视为等价(305 可替代 335)。RealSense 相机通过 SN 匹配,只要 librealsense2 支持的设备均可运行,代码不做型号级白名单限制。