
概要 📖 – レーザースキャナー測距データ取得
Hokuyo CHOPは、北陽電機製レーザースキャナーから測距データを取得し、極座標または直交座標で CHOP チャンネルとして出力する CHOPです。シリアル接続とイーサネット接続の両方に対応し、UST-10LX や URG-04LX-UG01 等の機種で空間スキャンを 1 オペレータで完結します。
主な用途 🎯
- 北陽電機 (Hokuyo) 製レーザースキャナーからの測距データ取得
- UST-10LX 等イーサネット接続型 LIDAR との通信
- URG-04LX-UG01 等シリアル接続型 LIDAR との通信
- 極座標 (Polar) または直交座標 (Cartesian) 形式でのスキャンデータ出力
- インスタレーション・展示でのプレゼンス検出・人物追跡の起点
データフロー 🔄
入力: Hokuyo レーザースキャナー (Serial / Ethernet)
↓
接続有効化 (Active)
↓
スキャン範囲指定 (Start Step / End Step)
↓
出力形式選択 (Polar / Cartesian)
↓
出力: CHOP チャンネル (距離値 または x, y 座標)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Connect Page 📋
Active .active 🔌
Hokuyo センサーへの接続有効化:
- Active: オンにすると Hokuyo センサーへの接続を確立しスキャンデータを取得開始
Interface .interface 🔗
デバイスとの通信インターフェイスを選択するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Serial | .serial |
シリアル通信を有効化し Serial Port パラメータを使用 |
| Ethernet | .ethernet |
イーサネット通信を有効化し Network Address パラメータを使用 |
Serial Port .port 🔌
シリアル接続で使用する COM ポート:
- Serial Port: シリアル接続が使用する COM ポート。プルダウンで COM1〜COM8 が選択可能、任意のポート名を手入力もできる
Network Address .netaddress 🌐
イーサネット接続時の接続先 IP アドレス:
- Network Address: 接続先レーザースキャナーのネットワークアドレス。UST-10LX のデフォルトは
192.168.0.10
High Sensitivity .highsensitivity 🔆
高感度モードの切替 (シリアル接続のみ):
- High Sensitivity: オンにするとセンサーの検出能力が向上するが、計測誤差が増加する。シリアル接続デバイスでのみ有効
Motor Speed .motorspeed ⚙️
モーター速度の調整 (シリアル接続のみ):
- Motor Speed: レーザースキャナーのモーター速度を変更。同一環境で複数のスキャナーを併用するときに、モーター速度を変えてレーザー光の干渉を避けるために使用。シリアル接続デバイスでのみ有効
Start Step .startstep ▶️
スキャンの最初のデータポイントを指定:
- Start Step: スキャン範囲の開始ステップ番号。デバイスの first/last measurement point の範囲内かつ End Step 以下である必要がある。デフォルトは
0(UST-10LX 等のイーサネットデバイス向け)、URG-04LX-UG01 等では44以上が必要
End Step .endstep ⏹️
スキャンの最後のデータポイントを指定:
- End Step: スキャン範囲の終了ステップ番号。デバイスの first/last measurement point の範囲内かつ Start Step 以上である必要がある。デフォルトは
1080(UST-10LX 等のイーサネットデバイス向け)、URG-04LX-UG01 等では725以下
Output .output 📤
スキャンデータの出力座標形式を選択するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Polar Coordinates | .polarcoords |
スキャン角度 (度) ごとに、最初に検出した物体までの距離を出力 |
| Cartesian Coordinates | .cartesiancoords |
デバイス中心を原点とする反時計回りスキャンの x, y 座標を出力 |
Common Page 🔧
Time Slice .timeslice ⏱️
Time Slice モードの強制設定:
- オン: チャンネルを「タイムスライス」モードに強制
- タイムスライス: 前回のクックフレームから現在のクックフレームまでの時間
Scope .scope 🎯
影響を受けるチャンネルの絞り込み:
- Scope 文字列: 影響を受けるチャンネルを指定する文字列
- パターンマッチング:
*や[1-10]等のパターンが使用可能
Sample Rate Match .srselect ⚡
複数の入力 CHOP のサンプルレートが異なる場合の処理方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Resample At First Input’s Rate | .first |
最初の入力のレートで他をリサンプル |
| Resample At Maximum Rate | .max |
最高サンプルレートでリサンプル |
| Resample At Minimum Rate | .min |
最低サンプルレートでリサンプル |
| Error If Rates Differ | .err |
レート不一致でエラー |
Export Method .exportmethod 📤
CHOP チャンネルをパラメータに接続する方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| DAT Table by Index | .datindex |
DAT テーブルのインデックスでチャンネルとパラメータを対応付け |
| DAT Table by Name | .datname |
DAT テーブルの行名でチャンネルとパラメータを対応付け |
| Channel Name is Path:Parameter | .autoname |
チャンネル名を `path:parameter` 形式で記述し直接対応付け |
Export Root .autoexportroot 🌳
Channel Name is Path:Parameter モード時のパス基点:
- Export Root パス:
autonameモードでチャンネル名のパス部分を相対化する基点 OP のパス
Export Table .exporttable 📋
DAT Table エクスポート方式での参照 DAT:
- Export Table DAT:
datindex/datnameモード時に参照する DAT のパス
Rename from .commonrenamefrom 🔤
リネーム対象チャンネルのパターン:
- Rename from パターン: リネーム対象とするチャンネル名のパターンマッチング文字列
Rename to .commonrenameto 🔁
リネーム後の置換パターン:
- Rename to パターン: Rename from にマッチしたチャンネルの新しい名前パターン (デフォルトはリネームなし)
実践アイデア 💡
Example 1: UST-10LX による空間プレゼンス検出 🎯
Hokuyo CHOP (Ethernet, Polar) → Math CHOP (閾値変換) → Logic CHOP → Trigger CHOP
- Hokuyo CHOP の Interface を Ethernet、Network Address を
192.168.0.10に設定 - Output を Polar Coordinates にしてスキャン角度ごとの距離値を取得
- Math CHOP で距離値を 0〜1 に正規化
- Logic CHOP で閾値以下のサンプルを検出してプレゼンス信号化
Example 2: URG-04LX-UG01 シリアル接続でロボット周辺障害物検出 🤖
Hokuyo CHOP (Serial, Cartesian) → Analyze CHOP (Minimum) → 制御信号
- Hokuyo CHOP の Interface を Serial、Serial Port を該当 COM に設定
- Start Step を
44、End Step を725に設定 (URG-04LX-UG01 の有効範囲) - Output を Cartesian Coordinates にして x, y 座標で取得
- Analyze CHOP の Minimum で最近傍距離を抽出し障害物検知の閾値判定に利用
Example 3: 複数 LIDAR 併用での干渉回避 📡
Hokuyo CHOP × 2 (異なる Motor Speed) → Merge CHOP → 統合スキャンデータ
- シリアル接続の Hokuyo を 2 台用意し、片方の Motor Speed を変更
- それぞれの Hokuyo CHOP で個別にスキャンデータを取得
- Merge CHOP で 2 系統のチャンネルを統合
- 光干渉を避けつつ広範囲のスキャン結果を 1 つの CHOP として扱う
関連オペレータ 🔗
類似機能OP 🔍
- Kinect CHOP — Kinect デバイスからの骨格・深度データ取得 (LIDAR とは別系統のセンサー)
- Serial CHOP — 汎用シリアルデバイスからの通信 (Hokuyo 以外の独自プロトコル機器向け)
- OSC In CHOP — OSC プロトコル経由で外部センサーデータを受信
組み合わせ推奨OP 🔄
- Math CHOP — 距離値の正規化・スケーリング
- Filter CHOP — スキャンデータのスムージング・ノイズ除去
- Analyze CHOP — スキャンデータの最小・最大・平均値抽出
- Logic CHOP — 閾値判定によるプレゼンス検出
- Select CHOP — 特定スキャン角度のチャンネル抽出
前処理・後処理CHOP 🎯
Info CHOP情報 📊
Hokuyo CHOPは Info CHOP による詳細情報取得に対応しています。
CHOP固有情報 🎚️
start: CHOPインターバルの開始(サンプル単位)length: CHOPのサンプル数sample_rate: フレーム毎秒のサンプルレートnum_channels: CHOPのチャンネル数time_slice: タイムスライス有効時は1、無効時は0export_sernum: Export接続の更新回数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間(ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: センサーに接続できない / データが取得できない
✅ Solution:
- Active パラメータがオンになっているか確認
- Ethernet 接続の場合、Network Address (デフォルト
192.168.0.10) と PC 側の IP 設定が同一サブネット内かを確認 - Serial 接続の場合、Serial Port が正しい COM ポートを指しているかをデバイスマネージャーで確認
❌ Problem: Start Step / End Step でエラーが発生する
✅ Solution:
- デバイス機種によって first/last measurement point の有効範囲が異なる (UST-10LX は 0〜1080、URG-04LX-UG01 は 44〜725)
- Start Step は End Step 以下である必要がある
- デフォルト値はイーサネットデバイス向け (0, 1080) のため、URG-04LX-UG01 等では手動調整が必要
❌ Problem: 計測値にノイズが多い / 値が安定しない
✅ Solution:
- 後段に Filter CHOP を入れて時間方向のスムージング
- High Sensitivity を有効にすると検出能力は上がるが計測誤差も増えるためトレードオフを検討
- シリアル接続で複数 Hokuyo を同時運用する場合は、Motor Speed を変えて光干渉を回避
❌ Problem: 複数 LIDAR を併用すると相互干渉する
✅ Solution:
- シリアル接続デバイスで Motor Speed を機体ごとに変更すると光干渉を低減できる
- Ethernet 接続デバイスは Motor Speed を変更できないため、物理的な配置で干渉を避ける
- シリアル接続の High Sensitivity をオフにして検出範囲を絞ることでも干渉を抑制できる
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

