🎯 传感器基类
介绍
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() 中组织为结构化字典返回。