跳转至

🎯 传感器基类

介绍

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() 中组织为结构化字典返回。