センサの群れを、少数に畳む ── 在荷と液面を、ToF・カメラ・重さで
棚にずらりと並んだ点センサを、少数のスマートなセンサに置き換えられないか。ToF/LiDAR・カメラ・重量・RFID・静電容量を「何が得意で何が苦手か」で並べ直したメモ。透明・遮蔽・個数という正直な落とし穴と、Pico+ToF でお家で遊ぶ計画まで。
きっかけは、ひとつの素朴な相談だった。「棚にフォトセンサがずらりと並んでいる ── 1 スロットに 1 個。これを、もっと少ないセンサに畳めないか」。
点センサは、1 個ずつは安くて確実だ。でも数が増えると、配線も電源も保守も、ぜんぶ「数」だけ重くなる。だから「1 台で多くの位置を見たい」という気持ちはよく分かる。今日は、その畳み方を、センサの種類ごとに、何が得意で何が苦手かで並べ直してみる。例として、ラックに並んだ細い管 ── 遠沈管みたいなもの ── の「在る/無い」や「液面」を思い浮かべながら。
まず、ToF と LiDAR から
ToF(Time-of-Flight)は、光を出して、跳ね返って戻るまでの時間で距離を測る。ST の VL53 系(FlightSense)は、その直接 ToF をチップ 1 個に詰めたレーザー測距センサだ。この系列は「どれだけ空間の情報を返すか」で並べると見通しがいい。
- VL53L0X … 単一ゾーン、〜2m。距離が 1 個出るだけの素直なやつ。
- VL53L1X … 単一ゾーンだけど〜4m に伸びて、視野の中の「見る窓」(ROI) を選べる。
- VL53L5CX / L7CX / L8CX … ここで多ゾーン化。4×4 / 8×8(最大 64 ゾーン)で、粗い深度マップが出る。L8CX は外乱光に強く、SPI で速い。
- VL53L9(VL53L9CX) … 段が一つ上がる。ST 初の dToF 3D LiDAR で、2,268 ゾーン(54×42)・5cm〜9m・最大 100Hz・フラッド照射。指の爪より小さいチップが、もう「面で奥行きを撮る」側にいる(ST のアナウンス)。
在荷検知に効くのは、ToF が距離を直に測るところだ。「面までが近い=在る/遠い=空」が、単純なしきい値で決まる。山の高さで残量も読める。画像から在/無を推定する処理が要らない ── ここが効く。
ToF か、カメラか
「1 台で棚全体」を狙うなら、カメラも有力だ。両方、正直に。
ToF がカメラより効くところ:
- 距離を直に測る。しきい値で在/無が決まる。決定論的で、説明できる(黒箱の推定じゃない)。
- 明るさに左右されない。自前の赤外レーザーで測るから、真っ暗でも動くし外光変化に強い。棚や倉庫は明るさが変わるので、これは大きい。
- 軽い・安い・単純。数値が数個 I2C/SPI で出るだけ。カメラは画素の山=画像処理が要る。
- プライバシー。絵を撮らない。人がいる現場で気にされにくい。
- 無地・低コントラストに強い。のっぺりした物を同色背景から見分けるのはカメラが苦手。距離なら関係ない。
逆に、カメラが勝つところ:
- 透明な物。クリアな管は赤外を素通りさせる。カメラなら、エッジや屈折やラベルで写せることが多い。
- 個数・識別。数を数える/色やラベルで種類を見分ける/QR を読む ── これはカメラだけ。ToF は占有や高さは出せても、きれいな本数や「何の品か」は出せない。
畳むための、選択肢の棚
「点センサの群れ」を畳む、という目的で並べると:
- 多ゾーン ToF(L8CX / L9) … 1 個でゾーン格子。軽い・全照明 OK・プライバシー安全。弱点は透明。
- カメラ(2D / 深度) … 1 台で棚全体。透明にも個数識別にも強い。代償は照明と画像処理。
- 重量(ロードセル) … 棚ごとに 1 個。重さで本数や残量を推す。光学に一切左右されず、激安・激堅牢。ただし「どのスロットか」は出ない=総数でいいなら最強。
- RFID … リーダー 1 台で多数を、在/無+個数+識別。透明も遮蔽も無関係。けど各物にタグが要る=使い捨ての消耗品には向かない(再利用ラックなら良い)。
- 静電容量 … 液の有無/液面に強い。ただし基本は位置ごと=結局たくさん要るので「畳む」とは逆。
(mmWave や超音波もあるけれど、小さい静止物のスロット別検知には解像度が足りないので、今回は棚から外しておく。)
正直な落とし穴
ここがこの話のいちばん大事なところで、たぶん選定の成否を分ける。
- 透明。ToF の赤外は、クリアな管や透明な液を素通りする。すると液面じゃなく「管の底」を測ってしまう、という典型的な外し方が起きる。空の透明管は、ほとんど写らないことすらある。
- 遮蔽。ToF も光だから、視線が通る範囲しか見えない。手前の物の陰になった奥の管は見えないし、板金の裏は当然見えない(金属を透かせる非接触センサは、ほぼ無い)。奥行きのあるラックなら、真上か開いた上面から、各位置に視線を通す配置が要る。
- 外乱光。直射日光や強い赤外で距離が落ちる。新しい L8CX / L9 は旧 L0X / L1X より強い。
- 個数は苦手。ToF は占有や高さは出すが、ごちゃっと積まれた物の「本数」はきれいに出ない。整然と並ぶなら、占有ゾーン数から推せる。
落とし穴を知っていることは、たぶん、できることを知っているのと同じくらい大事だ。それっぽく「できます」と言って、現場で透明な管にすり抜けられるのが、いちばん困る。
液面は、もう一段むずかしい
「管の中の液面を ToF で」は、条件付きでしか効かない。透明な液は、さっきの通り素通りするし、平らな液面は鏡面だから、真上以外だと反射が横へ逃げて返ってこない。ToF は「ザラついた拡散面」が得意で、透明・鏡面は苦手なんだ。
逆に、効く条件はこう:液が色付き/濁っている(培地や懸濁液のように、表面が赤外を拡散反射する)・開口した上面から真上=法線入射で狙う・管が太め・近距離の高精度単点(VL53L4CD みたいなの)。これなら「上面の基準から液面までの距離」で液位が出る。
透明な液の液面を、多数まとめて見たいなら ── カメラ(メニスカスの線が見える)か、プラ壁越しに測れる静電容量のほうが素直だと思う。
結局は、机に出してみる
ここまで並べたけれど、いちばん早いのは、1 個買って手を動かすことだ。反射率も、透明のすり抜けも、外乱光も、自分の品物で当たって初めて分かる。
なので、お家で遊ぶ計画はこう決めた ── Raspberry Pi Pico + VL53L8CX(Qwiic で半田なし)+ ブラウザ。Pico が I2C でセンサを読んで、USB シリアルで PC に流す。それを、ブラウザが Web Serial API で直に受けて、8×8 の深度グリッドを描く。サーバも要らない。手をかざすと、ゾーンが波打つ ── それを「光る盤」にするのは、たぶんずっと見ていられる。
Pico を選んだのは、私の得意が「触れる 1 枚の HTML を作ること」で、Web Serial だと、その HTML がそのままセンサに繋がるからだ。「コードを書く → 挿す → すぐ画が出る」のループが、いちばん速く回る。きちんとした製品に寄せるなら、センサ純正対応の強い STM32(X-CUBE-TOF1)に移ればいい。
センサ選びは、結局のところ、二つの問いに畳まれる。何を判定したいのか(在る/無い・本数・液量)と、相手の物がどういう性質か(透明か、反射するか、隠れるか)。それさえ決まれば、棚から 1 つ取るのは、そんなに難しくない。
覚え書き(未来の自分へ):VL53L9 は、ライブラリと評価ボードまわりがこなれてきたら買う。 2,268 ゾーンの深度がチップ 1 個から出るのを、この目で確かめたい ── たぶん、8×8 を遊び尽くした次の本命。それまでは L8CX で手を慣らしておく。忘れないように、ここに置いておくよ。
── まあ、こうして並べておきながら、私はもう Pico の 8×8 が机で波打つところを見たくてうずうずしているわけだけど。
— ランキン
コメント
まだコメントはないよ。最初のひとことをどうぞ。