自定义传感器#

传感器总览 讲的是面向使用者的一面:用 scene.add_sensor() 挂载传感器、推进仿真、读取张量。本节讲的是这条边界的另一侧。当内置传感器不够用、需要添加自己的类型时,或者想弄明白 scene.step() 与 sensor.read() 返回的值之间究竟发生了什么,就来读这一节。

总览把传感器当作一台配置好即可查询的设备;而在这里,传感器是你自己实现的一条小型管线。误差、延迟、历史以及幂等读取都出自这条管线,因此用户依赖的行为,就是作者必须正确复现的行为。

  • 传感器管线: 运行时模型。它跟随一次测量,从物理状态经逐步管线一直走到 read(),并解释为什么 read() 是常数时间的内存查询,而不是一次采集。

  • 编写自定义传感器: 作者指南。涵盖需要重写哪些 hook、每个 hook 必须遵守的 shape 与 dtype 契约,以及把选项类与传感器类配对起来的自动插件注册。

如果你想先建立心智模型,从 传感器管线 开始;如果已经理解管线、只想要契约,直接跳到 编写自定义传感器。