差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ssm:how-to-use [2014/08/29 00:22] rpp [使い方] |
ssm:how-to-use [2015/02/24 17:34] (現在) rpp [使い方] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
======使い方====== | ======使い方====== | ||
- | # まずssm-coodinatorを起動する。\\ | + | - まずssm-coodinatorを起動する。 |
- | # 次にセンサ用のドライバプログラムを起動する。\\ | + | - 次にセンサ用のドライバプログラムを起動する。 |
- | # それらのデータを利用するプログラムを起動する。\\ | + | - それらのデータを利用するプログラムを起動する。 |
- | # 気になったらlsssm等で登録されているセンサを確認する。\\ | + | - 気になったらlsssm等で登録されているセンサを確認する。 |
- | # 詳細は「ユーティリティプログラム」の項を参照。 | + | - 詳細は「ユーティリティプログラム」の項を参照。 |
+ | [[http://www.roboken.iit.tsukuba.ac.jp/platform/man/ssm/|Doxygenにより生成されたマニュアル]] | ||
=====動作テスト===== | =====動作テスト===== | ||
ライン 30: | ライン 31: | ||
SSMのメインプログラム | SSMのメインプログラム | ||
$ ssm-coordinator | $ ssm-coordinator | ||
- | これを起動してから他のプログラムを立ち上げる | + | これを起動してから他のプログラムを立ち上げる。 |
==== lsssm ==== | ==== lsssm ==== | ||
- | SSMに登録されているセンサの情報を表示。\\ | + | SSMに登録されているセンサの情報を表示。 |
- | SSMに正しく登録できているかこれで確認 | + | |
+ | SSMに正しく登録できているかこれで確認。 | ||
$ lsssm | $ lsssm | ||
No. | stream name | suid | size[B] | num | cycle[s] | property[B] | | No. | stream name | suid | size[B] | num | cycle[s] | property[B] | | ||
- | ---|----------------|------|---------|-------|----------|-------------| | + | ---|----------------|------|---------|-------|----------|-------------| |
000 | spur_adjust | 0 | 40.00 | 239 | 0.005 | 0.00 | 000 | spur_adjust | 0 | 40.00 | 239 | 0.005 | 0.00 | ||
001 | spur_global | 0 | 40.00 | 1199 | 0.005 | 0.00 | 001 | spur_global | 0 | 40.00 | 1199 | 0.005 | 0.00 | ||
ライン 60: | ライン 62: | ||
==== ssm-monitor ==== | ==== ssm-monitor ==== | ||
- | SSMに登録されているセンサの書き込み状況を表示。\\ | + | SSMに登録されているセンサの書き込み状況を表示。 |
- | handlerを作成したときこれをviewerを作成しなくても書き込まれているかどうかを調べることができる。(もちろん書き込まれたデータが正しいかどうかは別の話)\\ | + | |
- | 読み込みについては確認することができないので注意!\\ | + | handlerを作成したときこれをviewerを作成しなくても書き込まれているかどうかを調べることができる。(もちろん書き込まれたデータが正しいかどうかは別の話) |
+ | |||
+ | 読み込みについては確認することができないので注意! | ||
Ctrl-Cで終了する。 | Ctrl-Cで終了する。 | ||
$ ssm-monitor | $ ssm-monitor | ||
No. | stream name | id | count | tid | data[B/s] | No. | stream name | id | count | tid | data[B/s] | ||
----+----------------------------------+----+-------+-------------+----------| | ----+----------------------------------+----+-------+-------------+----------| | ||
- | 0 | spur_adjust | 0 | 200 | 3954 | 7.812k | + | 0 | spur_adjust | 0 | 200 | 3954 | 7.812k |
- | 1 | spur_global | 0 | 0 | 3984 | 0.000 | + | 1 | spur_global | 0 | 0 | 3984 | 0.000 |
- | 2 | spur_odometry | 0 | 200 | 5822 | 7.812k | + | 2 | spur_odometry | 0 | 200 | 5822 | 7.812k |
- | 3 | pws_motor | 0 | 0 | 3984 | 0.000 | + | 3 | pws_motor | 0 | 0 | 3984 | 0.000 |
- | 4 | scan_data2d | 2 | 40 | 1165 | 789.219k | + | 4 | scan_data2d | 2 | 40 | 1165 | 789.219k |
- | 5 | scan_data2d | 1 | 40 | 1162 | 1.026M | + | 5 | scan_data2d | 1 | 40 | 1162 | 1.026M |
- | 6 | sokuiki_fs | 1 | 40 | 826 | 2.198M | + | 6 | sokuiki_fs | 1 | 40 | 826 | 2.198M |
- | 7 | sokuiki_fs | 2 | 40 | 829 | 1.651M | + | 7 | sokuiki_fs | 2 | 40 | 829 | 1.651M |
- | 8 | sokuiki_bs | 2 | 40 | 829 | 1.651M | + | 8 | sokuiki_bs | 2 | 40 | 829 | 1.651M |
----+----------------------------------+----+-------+-------------+----------| | ----+----------------------------------+----+-------+-------------+----------| | ||
ライン 89: | ライン 94: | ||
==== ssm-logger ==== | ==== ssm-logger ==== | ||
- | SSMに登録されているセンサのデータを記録 | + | SSMに登録されているセンサのデータを記録。 |
- | $ ssm-logger -n センサ名 -i センサのID -l 記録ファイル名 | + | |
- | $ ssm-logger -l hoge.log -n hogehoge -i 0 | + | $ ssm-logger -n センサ名 -i センサのID -l 記録ファイル名 |
- | 複数記録したいときは複数起動する。\\ | + | $ ssm-logger -l hoge.log -n hogehoge -i 0 |
- | 終了するときはCtrl-C\\ | + | |
- | 基本的にシェルスクリプトを使う\\ | + | 複数記録したいときは複数起動する。 |
+ | |||
+ | 終了するときはCtrl-C | ||
+ | |||
+ | 基本的にシェルスクリプトを使う。 | ||
+ | |||
+ | |||
+ | ストリームに書き込まれたデータを全て保存します。 | ||
- | ストリームに書き込まれたデータを全て保存します。\\ | ||
保存形式は順番は、 | 保存形式は順番は、 | ||
- | 1行目にストリームのテキスト情報\\ | + | 1行目にストリームのテキスト情報 |
- | その後バイナリでプロパティデータ\\ | + | |
- | タイムスタンプ、ストリームデータのセット\\ | + | その後バイナリでプロパティデータ |
+ | |||
+ | タイムスタンプ、ストリームデータのセット | ||
の順です。 | の順です。 | ||
=== スクリプトの例(logger.sh) === | === スクリプトの例(logger.sh) === | ||
- | *起動 | + | ==起動== |
- | ./logger.sh ログディレクトリ | + | |
- | *ファイル例 | + | ./logger.sh ログディレクトリ |
+ | |||
+ | ==ファイル例== | ||
+ | | ||
#!/bin/bash | #!/bin/bash | ||
ライン 130: | ライン 146: | ||
fi | fi | ||
- | 最後の行に&をつけると悲惨なことになるので注意 | + | 最後の行に&をつけると悲惨なことになるので注意。 |
==== ssm-player ==== | ==== ssm-player ==== | ||
- | 複数のセンサデータを同時に再生。\\ | + | 複数のセンサデータを同時に再生。 |
途中での速度変更や、ポーズ、逆再生もできる。 | 途中での速度変更や、ポーズ、逆再生もできる。 | ||
$ ssm-player 記録ファイル名1 記録ファイル名2 記録ファイル名3 ... | $ ssm-player 記録ファイル名1 記録ファイル名2 記録ファイル名3 ... | ||
ライン 139: | ライン 156: | ||
$ ssm-player ログディレクトリ/*.log | $ ssm-player ログディレクトリ/*.log | ||
- | 注意:\\ | + | 注意: |
- | ssm-playerで再生する場合、\\ | + | |
- | タイムスタンプを参照してSSMに書き出すため、\\ | + | ssm-playerで再生する場合、 |
- | URG等に見られるセンサの計測→通信等による取得の時間遅れが0の状態になります。\\ | + | |
- | そのため、URGのデータの時刻がオドメトリより先に来る場合もあり、\\ | + | タイムスタンプを参照してSSMに書き出すため、 |
- | 実際の動作と異なる場合があります。\\ | + | |
+ | URG等に見られるセンサの計測→通信等による取得の時間遅れが0の状態になります。 | ||
+ | |||
+ | そのため、URGのデータの時刻がオドメトリより先に来る場合もあり、 | ||
+ | |||
+ | 実際の動作と異なる場合があります。 | ||
=== オプション === | === オプション === | ||
ライン 162: | ライン 184: | ||
=== コマンド === | === コマンド === | ||
- | 再生中に変更するときのコマンド | + | 再生中に変更するときのコマンド。 |
- | そのうち追加するかも\\ | + | |
+ | そのうち追加するかも。 | ||
再生中にキーを押してエンターを押すと反映される。 | 再生中にキーを押してエンターを押すと反映される。 | ||
p | pause : ポーズ | p | pause : ポーズ | ||
ライン 175: | ライン 199: | ||
> : コマ送り(0.1秒) | > : コマ送り(0.1秒) | ||
- | "+->"のコマンドについては1文字毎に解析しているので、"+++++\n"のように連続して入力することも可能 | + | "+->"のコマンドについては1文字毎に解析しているので、"+++++\n"のように連続して入力することも可能。 |
==== ssm-date ==== | ==== ssm-date ==== | ||
- | SSM時間を取得・書き込みするソフト。\\ | + | SSM時間を取得・書き込みするソフト。 |
- | 時間の一時停止・速度などをコントロールできる。\\ | + | |
+ | 時間の一時停止・速度などをコントロールできる。 | ||
ssm-playerと併用して使用する(というかssm-playerを外部からコントロールするために作ったプログラムです)。 | ssm-playerと併用して使用する(というかssm-playerを外部からコントロールするために作ったプログラムです)。 | ||
- | $ ssm-date -g | + | $ ssm-date -g |
=== オプション === | === オプション === | ||
- | 代表的なオプションだけを示す。\\ | + | 代表的なオプションだけを示す。 |
詳しくはhelpを参照 | 詳しくはhelpを参照 | ||
引数 | 引数 | ||
ライン 196: | ライン 223: | ||
=== パネルへの登録 === | === パネルへの登録 === | ||
- | gnomeパネルなどに登録してくと、パネルをクリックするだけでssm-playerをコントロールできるようになるので便利。\\ | + | gnomeパネルなどに登録してくと、パネルをクリックするだけでssm-playerをコントロールできるようになるので便利。 |
登録方法は、 | 登録方法は、 | ||
#Ubuntu画面上部のパネルを右クリック | #Ubuntu画面上部のパネルを右クリック | ||
ライン 202: | ライン 230: | ||
#カスタムアプリケーションのランチャを選択 | #カスタムアプリケーションのランチャを選択 | ||
#コマンドに「ssm-date -g」と入力し、OKを押す | #コマンドに「ssm-date -g」と入力し、OKを押す | ||
- | これだけで、追加したアイコンをクリックするだけで\\ | + | これだけで、追加したアイコンをクリックするだけで |
ログの再生・一時停止を切り替えることができます。 | ログの再生・一時停止を切り替えることができます。 | ||
==== ssm-transporter ==== | ==== ssm-transporter ==== | ||
- | 複数PC間でセンサデータを共有するためのソフトウェア。\\ | + | 複数PC間でセンサデータを共有するためのソフトウェア。 |
別のPCに接続されているセンサを使えるようになります。 | 別のPCに接続されているセンサを使えるようになります。 | ||
- | PCの接続は現在は1対1の通信のみ対応。\\ | + | PCの接続は現在は1対1の通信のみ対応。 |
- | センサは複数転送可能(なはず)です。\\ | + | |
- | 互いにファイルsend_sensors.server(send_sensor.client)に送りたいセンサの名前とIDを書いて、\\ | + | センサは複数転送可能(なはず)です。 |
+ | |||
+ | 互いにファイルsend_sensors.server(send_sensor.client)に送りたいセンサの名前とIDを書いて、 | ||
サーバ側は | サーバ側は | ||
$ ssm-transporter | $ ssm-transporter | ||
クライアント側は | クライアント側は | ||
$ ssm-transporter <サーバのIP> | $ ssm-transporter <サーバのIP> | ||
- | で起動する。\\ | + | で起動する。 |
両方に同じセンサ名が書いてあると大変なことになるかも。 | 両方に同じセンサ名が書いてあると大変なことになるかも。 | ||
ライン 223: | ライン 257: | ||
==== killssm ==== | ==== killssm ==== | ||
- | ssmを使っているプログラム全てに対してシグナルを送る\\ | + | ssmを使っているプログラム全てに対してシグナルを送る |
デフォルトはSIGINT(Ctrl-Cと同じ入力)。 | デフォルトはSIGINT(Ctrl-Cと同じ入力)。 | ||
$ killssm | $ killssm | ||
==== psssm ==== | ==== psssm ==== | ||
- | ssmを使用しているプログラムを全て表示\\ | + | ssmを使用しているプログラムを全て表示 |
psコマンドのssm版です | psコマンドのssm版です | ||
$ psssm | $ psssm | ||
==== topssm ==== | ==== topssm ==== | ||
- | ssmを使用しているプログラムの負荷を表示\\ | + | ssmを使用しているプログラムの負荷を表示 |
topコマンドのssm版です | topコマンドのssm版です | ||
==== ssm-graph ==== | ==== ssm-graph ==== | ||
- | SSMのプロセスのつながり方をDOT言語で出力するプログラムです。\\ | + | SSMのプロセスのつながり方をDOT言語で出力するプログラムです。 |
- | Graphviz等と組み合わせて使用してください。\\ | + | |
+ | Graphviz等と組み合わせて使用してください。 | ||
ex) | ex) |