トップへ戻る
チュートリアルに戻る
English | Japanese
このページではSCIPコマンドを用いてセンサから距離データを取得するまでの流れを解説していきます。
一言でいえばPCからセンサに送られる命令のことです。
PCがセンサからデータを受け取るには、まずPCからセンサに対してデータを送信するように命令を行います。
こうしたデータの要求以外にも、センサにレーザを点灯させてスキャンを開始させたり、レーザを消灯しスキャンを停止させたりする命令も、センサを使う上で必要になってきます。
センサに対して行える命令があらかじめSCIPコマンドとして決められているわけです。
SCIPコマンドについての説明は以下をご覧ください。
https://sourceforge.net/p/urgnetwork/wiki/scip_jp/
PCとセンサが同じネットワークになるようにPC側のIPアドレスの設定が必要です。
以下のページを見てIPアドレスの設定を済ませておきます。
https://sourceforge.net/p/urgnetwork/wiki/ip_address_jp/
センサの電源を入れ、LANケーブルを接続します。
センサにイーサネット接続し、SCIPコマンドを送ったり受け取ったデータを表示するためのアプリ、”Tera Term”を用意します。
以下からダウンロードできます。
https://github.com/TeraTermProject/teraterm/releases
インストール出来たらTera Term を起動します。
起動すると以下の画面が表示されますが、センサのIPアドレスとポート番号を入力してOKを押します。IPとポートのデフォルト値はそれぞれ”192.168.0.10"と"10940"です。
するとセンサと接続できます。
接続した時点ではセンサからデータは送信されず、アプリのコンソールには何も表示されません。
今回は”BM”、”GD”、”QT”という3つの命令を使います。
それぞれのコマンドの意味は次の通り、
BM:計測を開始するためにセンサのレーザーを点灯させる
GD:一回だけ距離データを取得する
QT:レーザを消灯し、計測を終了する
まずTera Termのコンソールに”BM"と入力しEnterを押します。
↓Enterを押す
すると、下に”00P”と出ますが、これはセンサからの応答です。
これでセンサのレーザーが点灯し、計測ができるようになりました。
次に”GD”コマンドを入力して距離データを要求してみますが、”GD”と入力しただけではデータを送ってくれません。
これに加えて、測定方向やデータのまとめ方を指定しなければいけません。とりあえずここでは”GD0540054001”と打ってみます
この”GD0540054001”という命令は「一回だけ540ステップ目の距離データを送れ」という意味になります。
GDに続く数字でどの方向のデータをどのようにまとめて送るか指定しています。
この指定方法については以下のページの「距離取得のパラメータ指定」の部分に説明があります。
https://sourceforge.net/p/urgnetwork/wiki/scip_capture_jp/
ステップとはセンサがデータを1回計測する方向のことです。例えば今回使うUST-30LXという機種では1スキャンに0~1080ステップまでの計1081ステップあります。
このステップ数は機種により異なるため、ほかの機種を使用する際は確認が必要です。
なので、センサ正面方向の距離は540ステップで計測されていることになります。
”GD0540054001” と入力しEnterを押すとすぐにセンサからの応答が表示されます。↓
選択し白くなっている部分が応答です。
センサからは距離データ以外にもいくつかの情報が送られてきます。
応答部分の初めの三行は距離データとは別の情報です。簡単に説明すると、
一行目: 命令のエコーバック(PCから送った命令が復唱されて帰ってきます)
二行目: 正常を示すエラーコード(00) + チェックサム(P)
三行目: タイムスタンプ(2eTF) + チェックサム(a)
今回必要な距離データを示すのは選択した部分の3文字です。
応答内容についてはSCIPコマンドの説明の「取得データのデコード」に説明があります。
計測された距離データは"0b;"でした。
最後に、”QT”コマンドでセンサの計測を休止させましょう。
先ほど受け取った3文字のデータのままではわかりづらいので、デコードして10進数に直します。
下記のページでデコードができます。
http://urgnetwork.sourceforge.net/SCIPEncodeDecode/SCIPEncodeDecode_jp.html
例えば、距離データ"0J="をEncoded:に入力すると、Decoded:に”1677"という数が現れます。この数がセンサ正面の距離データをmm(ミリメートル)で表しています。
おわり
以下のページにSCIPコマンドの詳しい説明やほかの種類のコマンドについて載っています。