🎯 传感器基类
介绍
Sensor
是用于构建传感器模块的抽象基类,提供统一的传感器数据获取接口。
该类适用于扩展各种传感器(如摄像头、IMU、激光雷达等),应通过子类继承实现具体的数据获取逻辑。
类定义
class Sensor:
传感器基类,用于统一传感器行为接口。需子类实现 get_information()
方法。
成员属性
属性名 | 类型 | 说明 |
---|---|---|
name |
str |
传感器名称,默认值为 "sensor" |
type |
str |
传感器类型标识,默认值为 "sensor" |
collect_info |
List[str] |
需要采集的传感器字段(通过 set_collect_info 设置) |
函数
init(self)
初始化传感器基本信息。
- 参数:无
- 返回:无
set_collect_info(self, collect_info)
设置所需采集的数据字段。
- 参数:
collect_info
(List[str]
):需要采集的字段名列表。- 返回:无
get(self) -> dict
获取传感器当前采集到的数据。
返回的字段由 self.collect_info
决定;若某个字段对应数据为 None
,将触发日志警告。
- 参数:无
-
返回:
dict
:键为collect_info
中指定字段名,值为传感器当前对应状态。 -
日志行为:
- 若未设置
collect_info
,将输出一条警告。 - 若某字段值为
None
,将输出错误日志。 - 数据内容不做 debug 输出,仅调试其是否为
None
。
repr(self) -> str
打印传感器信息字符串。
- 参数:无
- 返回:
str
:传感器的类型和名称说明。
实现自己的传感器子类
子类需继承 Sensor
并实现数据采集逻辑。
必要实现
get_information()
用于返回采集到的完整传感器数据字典。
- 参数:无
- 返回:
Dict[str, Any]
:键为字段名,值为当前传感器数据。
可选择实现
根据具体传感器类型,建议实现以下字段提取接口:
get_image()
:用于图像类传感器get_depth()
:深度数据get_pose()
:位置姿态get_pointcloud()
:点云数据get_temperature()
:温度传感器数据get_acceleration()
:IMU 加速度get_gyroscope()
:IMU 角速度
子类应根据传感器能力选择性添加这些方法,并在 get_information()
中组织为结构化字典返回。