传感器控制服务
约 5583 字大约 19 分钟
2025-01-27
提供机器人系统传感器数据管理,包括相机、IMU、激光雷达等。
接口定义
SensorController
是机器人传感器数据管理,包括相机、IMU、激光雷达等。
SensorController
— 传感器控制器
项目 | 内容 |
---|---|
类名 | SensorController |
功能概述 | 机器人传感器数据管理,包括相机、IMU、激光雷达等 |
主要功能 | 传感器开关控制、数据订阅、多模态感知 |
使用场景 | 环境感知、导航定位、状态监控 |
initialize
项目 | 内容 |
---|---|
方法名 | initialize |
方法声明 | bool initialize() |
功能概述 | 初始化传感器控制器。 |
返回值 | true 表示成功,false 表示失败。 |
备注 | 首次使用前必须调用。 |
shutdown
项目 | 内容 |
---|---|
方法名 | shutdown |
方法声明 | void shutdown() |
功能概述 | 关闭传感器控制器。 |
备注 | 配合 initialize 使用。 |
open_channel_switch
项目 | 内容 |
---|---|
方法名 | open_channel_switch |
方法声明 | Status open_channel_switch() |
功能概述 | 打开话题转换开关。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口。 |
close_channel_switch
项目 | 内容 |
---|---|
方法名 | close_channel_switch |
方法声明 | Status close_channel_switch() |
功能概述 | 关闭话题转换开关。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口,配合打开函数使用。 |
open_laser_scan
项目 | 内容 |
---|---|
方法名 | open_laser_scan |
方法声明 | Status open_laser_scan() |
功能概述 | 打开雷达。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口。 |
close_laser_scan
项目 | 内容 |
---|---|
方法名 | close_laser_scan |
方法声明 | Status close_laser_scan() |
功能概述 | 关闭雷达。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口,配合打开函数使用。 |
open_rgbd_camera
项目 | 内容 |
---|---|
方法名 | open_rgbd_camera |
方法声明 | Status open_rgbd_camera() |
功能概述 | 打开 RGBD 相机。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口。 |
close_rgbd_camera
项目 | 内容 |
---|---|
方法名 | close_rgbd_camera |
方法声明 | Status close_rgbd_camera() |
功能概述 | 关闭 RGBD 相机。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口,配合打开函数使用。 |
open_binocular_camera
项目 | 内容 |
---|---|
方法名 | open_binocular_camera |
方法声明 | Status open_binocular_camera() |
功能概述 | 打开双目相机。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口。 |
close_binocular_camera
项目 | 内容 |
---|---|
方法名 | close_binocular_camera |
方法声明 | Status close_binocular_camera() |
功能概述 | 关闭双目相机。 |
返回值 | Status::OK 表示成功,其他为失败。 |
备注 | 阻塞接口,配合打开函数使用。 |
subscribe_imu
项目 | 内容 |
---|---|
方法名 | subscribe_imu |
方法声明 | void subscribe_imu(callback) |
功能概述 | 订阅 IMU 数据。 |
参数说明 | callback :回调函数,接收 IMU 数据。函数签名为:callback(data : Imu) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_tof
项目 | 内容 |
---|---|
方法名 | subscribe_tof |
方法声明 | void subscribe_tof(callback) |
功能概述 | 订阅 TOF 数据。 |
参数说明 | callback :回调函数,接收 TOF 数据。 |
备注 | 非阻塞接口,通过回调函数异步接收数据。函数签名为:callback(data : Float32MultiArray) -> None |
subscribe_ultra
项目 | 内容 |
---|---|
方法名 | subscribe_ultra |
方法声明 | void subscribe_ultra(callback) |
功能概述 | 订阅超声波数据。 |
参数说明 | callback :回调函数,接收超声波数据。函数签名为:callback(data : Float32MultiArray) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_head_touch
项目 | 内容 |
---|---|
方法名 | subscribe_head_touch |
方法声明 | void subscribe_head_touch(callback) |
功能概述 | 订阅头部触摸数据。 |
参数说明 | callback :回调函数,接收头部触摸数据。函数签名为:callback(data : HeadTouch) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_laser_scan
项目 | 内容 |
---|---|
方法名 | subscribe_laser_scan |
方法声明 | void subscribe_laser_scan(callback) |
功能概述 | 订阅激光雷达数据。 |
参数说明 | callback :回调函数,接收激光雷达数据。函数签名为:callback(data : LaserScan) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_rgb_depth_camera_info
项目 | 内容 |
---|---|
方法名 | subscribe_rgb_depth_camera_info |
方法声明 | void subscribe_rgb_depth_camera_info(callback) |
功能概述 | 订阅 RGBD 深度相机内参数据。 |
参数说明 | callback :回调函数,接收相机内参数据。函数签名为:callback(data : CameraInfo) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_rgbd_depth_image
项目 | 内容 |
---|---|
方法名 | subscribe_rgbd_depth_image |
方法声明 | void subscribe_rgbd_depth_image(callback) |
功能概述 | 订阅 RGBD 深度图像数据。 |
参数说明 | callback :回调函数,接收深度图像数据。函数签名为:callback(data : Image) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_rgbd_color_camera_info
项目 | 内容 |
---|---|
方法名 | subscribe_rgbd_color_camera_info |
方法声明 | void subscribe_rgbd_color_camera_info(callback) |
功能概述 | 订阅 RGBD 彩色图像内参数据。 |
参数说明 | callback :回调函数,接收相机内参数据。函数签名为:callback(data : CameraInfo) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_rgbd_color_image
项目 | 内容 |
---|---|
方法名 | subscribe_rgbd_color_image |
方法声明 | void subscribe_rgbd_color_image(callback) |
功能概述 | 订阅 RGBD 彩色图像数据。 |
参数说明 | callback :回调函数,接收彩色图像数据。函数签名为:callback(data : Image) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_left_binocular_high_img
项目 | 内容 |
---|---|
方法名 | subscribe_left_binocular_high_img |
方法声明 | void subscribe_left_binocular_high_img(callback) |
功能概述 | 订阅左侧高质量双目数据。 |
参数说明 | callback :回调函数,接收左侧高质量双目数据。函数签名为:callback(data : CompressedImage) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_left_binocular_low_img
项目 | 内容 |
---|---|
方法名 | subscribe_left_binocular_low_img |
方法声明 | void subscribe_left_binocular_low_img(callback) |
功能概述 | 订阅左侧低质量双目数据。 |
参数说明 | callback :回调函数,接收左侧低质量双目数据。函数签名为:callback(data : CompressedImage) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_right_binocular_low_img
项目 | 内容 |
---|---|
方法名 | subscribe_right_binocular_low_img |
方法声明 | void subscribe_right_binocular_low_img(callback) |
功能概述 | 订阅右侧低质量双目数据。 |
参数说明 | callback :回调函数,接收右侧低质量双目数据。函数签名为:callback(data : CompressedImage) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
subscribe_depth_image
项目 | 内容 |
---|---|
方法名 | subscribe_depth_image |
方法声明 | void subscribe_depth_image(callback) |
功能概述 | 订阅深度图像数据。 |
参数说明 | callback :回调函数,接收深度图像数据。函数签名为:callback(data : Image) -> None |
备注 | 非阻塞接口,通过回调函数异步接收数据。 |
数据结构定义
Header
— 头部信息结构体
字段名 | 类型 | 描述 |
---|---|---|
stamp | int | 时间戳 |
frame_id | str | 坐标系 ID |
Image
— 图像结构体
字段名 | 类型 | 描述 |
---|---|---|
header | Header | 头部信息 |
height | int | 图像高度 |
width | int | 图像宽度 |
encoding | str | 编码格式 |
is_bigendian | bool | 是否大端序 |
step | int | 步长 |
data | List[int] | 图像数据 |
Imu
— 惯性测量单元结构体
字段名 | 类型 | 描述 |
---|---|---|
timestamp | int | 时间戳 |
orientation | List[float] | 姿态四元数(只读) |
angular_velocity | List[float] | 角速度(只读) |
linear_acceleration | List[float] | 线性加速度(只读) |
temperature | float | 温度 |
PointField
— 点云字段描述结构体
字段名 | 类型 | 描述 |
---|---|---|
name | str | 字段名,如 "x"、"y"、"z"、"intensity" 等 |
offset | int | 起始字节偏移 |
datatype | int | 数据类型(对应常量) |
count | int | 该字段包含的元素数量 |
PointCloud2
— 通用点云数据结构
字段名 | 类型 | 描述 |
---|---|---|
header | Header | 标准消息头 |
height | int | 行数 |
width | int | 列数 |
fields | List[PointField] | 点字段数组 |
is_bigendian | bool | 字节序 |
point_step | int | 每个点占用的字节数 |
row_step | int | 每行占用的字节数 |
data | List[int] | 原始点云数据(按字段打包) |
is_dense | bool | 是否为稠密点云(无无效点) |
CameraInfo
— 相机内参与畸变信息结构体
字段名 | 类型 | 描述 |
---|---|---|
header | Header | 通用消息头 |
height | int | 图像高度(行数) |
width | int | 图像宽度(列数) |
distortion_model | str | 畸变模型,如 "plumb_bob" |
D | List[float] | 畸变参数数组 |
K | List[float] | 相机内参矩阵(9个元素) |
R | List[float] | 矫正矩阵(9个元素) |
P | List[float] | 投影矩阵(12个元素) |
binning_x | int | 水平binning系数 |
binning_y | int | 垂直binning系数 |
roi_x_offset | int | ROI起始x |
roi_y_offset | int | ROI起始y |
roi_height | int | ROI高度 |
roi_width | int | ROI宽度 |
roi_do_rectify | bool | 是否进行矫正 |
CompressedImage
— 压缩图像结构体
字段名 | 类型 | 描述 |
---|---|---|
header | Header | 通用消息头 |
format | str | 压缩格式 |
data | List[int] | 压缩后的图像数据 |
LaserScan
— 激光雷达数据结构体
字段名 | 类型 | 描述 |
---|---|---|
header | Header | 通用消息头 |
angle_min | int | 最小角度 |
angle_max | int | 最大角度 |
angle_increment | int | 角度增量 |
time_increment | int | 时间增量 |
scan_time | int | 扫描时间 |
range_min | int | 最小距离 |
range_max | int | 最大距离 |
ranges | List[float] | 距离数据数组 |
intensities | List[float] | 强度数据数组 |
MultiArrayDimension
— 多维数组维度描述结构体
字段名 | 类型 | 描述 |
---|---|---|
label | str | 维度标签 |
size | int | 维度大小 |
stride | int | 步长 |
MultiArrayLayout
— 多维数组布局描述结构体
字段名 | 类型 | 描述 |
---|---|---|
dim_size | int | 维度数量 |
dim | List[MultiArrayDimension] | 维度描述数组 |
data_offset | int | 数据偏移 |
Float32MultiArray
— 浮点数多维数组结构体
字段名 | 类型 | 描述 |
---|---|---|
layout | MultiArrayLayout | 数组布局描述 |
data | List[float] | 浮点数数据数组 |
ByteMultiArray
— 字节数组结构体
字段名 | 类型 | 描述 |
---|---|---|
layout | MultiArrayLayout | 数组布局描述 |
data | List[int] | 字节数据数组 |
HeadTouch
— 头部触摸数据结构体
字段名 | 类型 | 描述 |
---|---|---|
data | int | 触摸状态数据 |