ROS(Robot Operating System)を使う
安曇野の森から > ROS(Robot Operating System)を使う > コマンドリファレンス(アルファベット順)
各コマンドの使用例はROS Wikiから引用しています。
実行したワークスペース内にパッケージディレクトリ/src、及び関連したファイルpackage.xml, CMakeList.txtを作成します。
catkin_create_pkg パッケージ名
なし
ワークスペース内の全パッケージをビルドします。
catkin_make
なし
rosbag check [オプション]
check バッグファイル名 | 指定されたバッグファイルが使用可能か確認する。 |
-h, --help | ヘルプを表示する。 |
-g ルールファイル名, --genrules=ルールファイル名 | 指定された名前のバッグマイグレーションルールファイルを作成する。 |
-a, --append | |
-n, --noplugins | プラグイン経由でルールを読み込まないようにする。 |
指定されたバッグファイルを圧縮します。
圧縮する前に拡張子が.orig.bagのバックアップファイルが作られます。
すでにバックアップファイルがある場合には圧縮されません。
現時点では圧縮フォーマットはBZ2のみです。
rosbag compress [オプション]
compress バッグファイル名 | 指定されたバッグファイルを圧縮する。 |
-h, --help | ヘルプを表示する。 |
--output-dir=ディレクトリ名 | 指定されたディレクトリに出力する。 |
-f, --force | バックアップファイルがある場合は強制的に上書きする。 |
-q, --quiet | 致命的メッセージ以外は表示しない。 |
指定されたバッグファイルを解凍します。
解凍する前に拡張子が.orig.bagのバックアップファイルが作られます。すでにバックアップファイルがある場合には解凍されません。
rosbag decompress [オプション]
decompress バッグファイル名 | 指定されたバッグファイルを解凍する。 |
-h, --help | ヘルプを表示する。 |
--output-dir=ディレクトリ名 | 指定されたディレクトリに出力する。 |
-f, --force | バックアップファイルがある場合は強制的に上書きする。 |
-q, --quiet | 致命的メッセージ以外は表示しない。 |
入力バッグファイルを指定されたPhython式で変換し出力バッグファイルに出力します。
rosbag filter [オプション]
filter 入力バッグファイル名 出力バッグファイル名 Phython式 | 入力バッグファイルを指定されたPhython式で変換し出力バッグファイルに出力する。 |
-h, --help | ヘルプを表示する。 |
--print=PRINT-EXPRESSION |
壊れたバッグファイルを修復します。
rosbag fix [オプション]
fix 入力バッグファイル名 出力バッグファイル名 [バッグマイグレーションルールファイル名] | 入力バッグファイルを指定されたルールで修復し出力バッグファイルに出力する。 |
-h, --help | ヘルプを表示する。 |
-n, --noplugins | プラグイン経由でルールファイルを読み込まないようにする。 |
rosbag info [オプション]
info バッグファイル名 | 指定されたバッグファイルの中身の概要を表示する。 |
-h, --help | ヘルプを表示する。 |
-y, --yaml | YAMLフォーマットで表示する。 |
-k フィールド名 バッグファイル名, --key=フィールド名 バッグファイル名 | 指定されたバッグファイルの指定されたフィールドの情報のみを表示する。(-yオプションと一緒に使う。) |
rosbag play [オプション]
play バッグファイル名 | 指定されたバッグファイルの内容を再生する。 |
-h, --help | ヘルプを表示する。 |
-q, --quiet | コンソール出力しない。 |
-i, --immediate | 全てのメッセージを待ちなしで再生する。 |
--pause | ポーズモードを開始する。 |
--queue=容量 | 出力キューの容量を指定する。(ディフォルトは0) |
--clock | クロック時間を発行する。 |
--hz=周期 | クロック時間を指定された周期[Hz]で発行する。 |
-d スリープ時間, --delay=スリープ時間 | サブスクライバにコネクトを許可するため、advertiseコール毎に指定されたスリープ時間[sec]だけスリープする。 |
-r 倍数, --rate=倍数 | 発行周期に指定された倍数をかける。 |
-s SEC, --start=SEC | |
-l, --loop | 再生を繰り返す。 |
-k, --keep-alive |
トピックを流れる情報をbagファイルへ記録します。
rosbag record [オプション] [パラメータ]
-h, --help | ヘルプを表示する。 |
-a, --all | 全てのトピックを流れる情報を記録する。 |
-e 正規表現トピック名, --regex=正規表現トピック名 | 正規表現で名前が一致したトピックに流れる情報を記録する。 |
-x 正規表現トピック名, --exclude=正規表現トピック名 | 正規表現で名前が一致したトピックを除いたトピックに流れる情報を記録する。 |
-q, --quiet | コンソール出力させない。 |
-o PREFIX, --output-prefix=PREFIX | |
-O バッグファイル名.bag, --output-name=バッグファイル名.bag | 情報を指定したバッグファイルへ記録する。 |
--split | 指定された容量、周期を超えた場合、バッグを分割する。 |
-b 容量, --buffsize=容量 | 内部バッファ容量をMBで設定する。(ディフォルトは256MB、0に設定すると無限大) |
--chunksize=容量 | チャンク容量をKBで設定する。(ディフォルトは768KB) |
-l メッセージ数, --limit=メッセージ数 | 指定された数のメッセージを記録する。 |
-j, --bz2 | ファイル圧縮にBZ2を使う。 |
バッグファイルをインデックスし直して修復する。
rosbag reindex
なし |
パッケージ名、又はスタック名を使うことによりカレントディレクトリを変えることが出来る。
環境変数ROS_WORKSPACEが設定してある場合には相対名を使ってディレクトリを指定することが出来る。
環境変数ROS_LOCATIONSに is a colon-separated list of key=path pairsが設定してある場合、
export ROS_LOCATIONS="pkgs=~/ros/pkgs:dev=~/ros/dev"
Will then allow you to type:
$ roscd dev
and end up in ~/ros/dev.
roscd パッケージ名又はスタック名[/サブディレクトリ名]
なし |
ログファイルの利用状況(ファイルサイズ)を表示します。
rosclean check
なし |
ログファイルを削除します。
rosclean purge
なし |
マスター、パラメーターサーバー、rosoutノードを起動します。
roscore
なし |
フルパスを指定することなくパッケージ名とファイル名だけでパッケージ内のファイルをコピーすることが出来る。
roscp コピー元パッケージ名 コピー元ファイル名 コピー先ファイルパス
なし |
以下のコマンドは~/ros/pkgs/ros_tutorials/roscpp_tutorials/talker/talker.cppをカレントディレクトリへコピーする。
roscreate-stack [オプション]
--show-deps |
dependencyの初期化を行います。ROSインストール後、1度だけsudoで実行します。
sudo rosdep init
なし |
dependencyの更新を行います。sudoで実行しないでください。
rosdep update
なし |
フルパスを指定することなくパッケージ名とファイル名だけでパッケージ内のファイルを編集するエディタを開くことが出来ます。
パッケージ内に同一名のファイルが別階層ディレクトリに存在する場合、ファイルを選択するよう指示が表示されます。
ディフォルトではvimが起動されるが、以下例のように環境変数EDITORを設定することにより、好みのエディターを起動出来ます。
export EDITOR='emacs -nw'
rosed パッケージ名 ファイル名
なし |
rosinstall
なし |
指定したローンチファイルを起動します。
roscoreが起動していなければroscoreが自動で起動されます。
roslaunch [オプション]
パッケージ名 ローンチファイル名 引数名=引数値 | 指定したローンチファイルへ引数を与えて実行する。 |
roslaunch ローンチファイルパス名... [引数] | |
-p port | |
--wait | |
--local | |
--dump-params | |
-v パッケージ名 ローンチファイル名 | 指定したローンチファイルを詳細表示で実行する。 |
-screen パッケージ名 ローンチファイル名 | 指定したローンチファイルの出力をスクリーンへ表示する。 |
--nodes パッケージ名 ローンチファイル名 | |
--nodes ローンチファイル名 | |
--args ノード名 パッケージ名 ローンチファイル名 | |
--args ノード名 ローンチファイル名 | |
--find ノード名 パッケージ名 ローンチファイル名 | |
--find ノード名 ローンチファイル名 | |
--files ファイル名 |
roslaunch-deps [オプション]
-w | |
-v | < |
cd `roslaunch-logs`
なし |
roslocate
指定されたパッケージ内、スタック内、又は通常のディレクトリ内ファイルを表示する。
rosls パッケージ名、又はスタック名、又はディレクトリパス
なし |
メッセージタイプの情報を表示します。
rosmsg show [オプション]
show メッセージタイプ名 | 指定されたメッセージタイプのフィールド情報を表示する。 |
-r | 生のメッセージ定義を表示する。 |
-b バッグファイル名 | 指定されたバッグファイルで定義されたメッセージを表示する。 |
パッケージの全メッセージを表示します。
rosmsg list
なし |
パッケージの全メッセージを表示します。
rosmsg package [オプション]
package パッケージ名 | 指定されたパッケージの全メッセージを表示する。 |
-s | 全メッセージを一行で表示する。 |
全パッケージを表示します。
rosmsg packages [オプション]
packages | 全パッケージを表示する。 |
-s | 全パッケージを一行で表示する。 |
メッセージのmd5サムを表示します。
rosmsg md5 [オプション]
md5 | メッセージタイプ名 指定されたメッセージのmd5サムを表示する。 |
Ctrl+Cでノードを停止させた場合に残るノード情報を完全にクリアします。
rosnode cleanup
なし |
指定されたノードのノード情報(どんなトピックを使っているか、パブリシャーかサブスクライバ―か、サービスか)を表示します。
rosnode info ノード名
なし |
ノードを停止させます。
rosnode kill [オプション]
kill ノード名... | 指定されたノードを停止させる。 |
kill | 対話モードでkillを起動する。 |
kill -a, kill --all | 全ノードを停止させる。 |
実行中のノードを表示します。
rosnode list [オプション]
list | 実行中のノードを表示する。 |
list 名前空間名 | 指定された名前空間にあるノードのみを表示する。 |
list -u | 実行中ノードのXML-RPC URIを表示する。 |
list -a, list --all | 実行中ノードの名前とXML-RPC URIを表示する。 |
マシン上で動作中のノードを表示します。
rosnode machine [オプション]
machine マシン名 | 指定されたマシンで動作しているノードのみ表示する。 |
machine | 全てのマシンを表示する。 |
ノードへ周期的にpingします。
rosnode ping [オプション]
ping ノード名 | 指定されたノードへ周期的にpingする。 |
ping --all | 全ノードにpingする。 |
ping -c カウント数 | カウント数分のみpingする。 |
全ノードを開放します。
rosnode cleanup [オプション]
cleanup | 登録されている全ノードを開放する。 |
パッケージが格納されているディレクトリ(パッケージディレクトリ)を表示します。
rospack find [オプション]
find パッケージ名 | パッケージディレクトリを表示する。 |
インストールされているパッケージを表示します。
rospack list
なし |
パラメータを削除します。
rosparam delete [オプション]
delete パラメータ名 | 指定されたパラメータを削除する。 |
-v | 詳細表示する。 |
パラメーターサーバーの内容をファイルへYAMLフォーマットで書き込みます。
rosparam dump [オプション]
dump ファイル名 | パラメーターサーバーの内容をYAMLフォーマットで指定されたファイルへ書き込む。 |
dump ファイル名 名前空間 | パラメーターサーバーの指定された名前空間の内容をファイルへ書き込む。 |
-v | 詳細情報を表示する。 |
パラメータの値を取得します。
rosparam get [オプション]
get パラメータ名 | パラメータの値を取得する。 |
-p | |
-v | 詳細情報を表示する。 |
パラメータ名を表示します。
rosparam list [オプション]
list | 全てのパラメータ名を表示する。 |
list 名前空間名 | 指定された名前空間の全てのパラメータ名を表示する。 |
YAMLフォーマットのファイルの内容をパラメーターサーバーへ読込みます。
rosparam load [オプション]
load ファイル名 | YAMLフォーマットのファイルの内容をパラメーターサーバーへ読込む。 |
load ファイル名 名前空間 | YAMLフォーマットのファイルの内容をパラメーターサーバーの指定された名前空間へ読込む。 |
-v | 詳細情報を表示する。 |
パラメータへ値を設定します。
rosparam set [オプション]
set パラメータ名 パラメータ パラメータ値 | 指定したパラメータへ値を設定する。 |
set 名前空間 パラメータ値 | 指定した名前空間の全パラメータへ同じ値を設定する。 |
-v | 詳細表示する。 |
-t テキストファイル名, --textfile テキストファイル名 | テキストファイルの内容でパラメータを設定する。 |
-b バイナリ―ファイル名, --binfile バイナリ―ファイル名 | XML-RPCバイナリ―タイプで記載されたバイナリ―ファイルの内容でパラメータを設定する。 |
ros版のpushdです。
カレントディレクトリをディレクトリスタックに保存して指定されたディレクトリへ移動します。
引数にディレクトリスタック番号を指定することにより元のディレクトリへ戻ることが出来ます。
rospd 移動先ディレクトリ名、又は戻り先のディレクトリスタック番号
なし |
ディレクトリスタックを表示します。
その後、rospdを使って表示されたディレクトリへ移動します。
rosd
なし |
フルパスを指定することなくパッケージ名と実行ファイル名だけでノードを起動出来ます。
rosrun パッケージ名 実行ファイル名
rosrun パッケージ名 実行ファイル名 _パラメータ名:=パラメータ値 | パラメータを与えてノードを起動する。(パラメータ名の前に"_"を付ける。) |
サービスの引数を表示します。
rosservice args [オプション]
args サービス名 | 指定されたサービスの引数を表示する。 |
サービスを起動します。
rosservice call [オプション]
call サービス名 [サービス引数] | 指定されたサービスを指定された引数で起動する。 |
--wait | サービスが起動するまで待つ。 |
指定されたサービスタイプに一致するサービスを表示します。
rosservice find [オプション]
find サービスタイプ名 | 指定されたサービスタイプに一致するサービスを表示する。 |
サービスの情報を表示します。
rosservice info [オプション]
info サービス名 | 指定されたサービスの情報を表示する。 |
利用可能な全サービスを表示します。
rosservice list [オプション]
list | 現時点で利用可能な全サービスを表示する。 |
list 名前空間名 | 指定した名前空間の全サービスを表示する。 |
-n | サービスを実装したノード名も表示する。 |
サービスを提供しているノードを表示します。
rosservice node [オプション]
node サービス名 | 指定されたサービスを提供しているノード名を表示する。 |
サービスのタイプ名を表示します。
rosservice type [オプション]
type サービス名 | 指定されたサービスのタイプ名を表示する。 |
サービスのURIを表示します。
rosservice uri [オプション]
uri サービス名 | 指定されたサービスのURIを表示する。 |
サービスデータタイプの詳細(構造)を表示します。
rossrv show [オプション]
show | サービスデータタイプ名 |
ファイルシステム内にあるROSスタックの情報を収集し表示する。
rosstack
なし |
トピックが使っているバンド幅[バイト/秒]を表示します。
rostopic bw [オプション]
bw トピック名 | 指定されたトピックが使っているバンド幅[バイト/秒]を表示する。 |
トピックに発行されているメッセージを表示します。
rostopic echo [オプション]
echo トピック名 | 指定されたトピックに発行されているメッセージを表示する。 |
echo トピック名/フィールド名 | トピックの指定されたフィールドのみ表示する。 |
--offset | |
--filter | 指定されたPython式に一致するメッセージのみを表示する。 |
-c | メッセージが発行される毎にスクリーンをクリアする。 |
-b | バッグファイルにあるメッセージを表示する。 |
-p | matlab/octave描画フォーマットのメッセージを表示する。 |
--nostr, --noarr | 指定された文字列、アレイフィールドを描画出力から除く。 |
-n カウント数 | カウント数分のメッセージを表示する。 |
トピックが使っているバンド幅[Hz]を表示します。
rostopic hz [オプション]
hz トピック名 | 指定されたトピックが使っているバンド幅[Hz]を表示する。バンド幅は平均値が表示される。 |
--filter FILTER_EXPR |
トピックを流れるメッセージのタイプを表示します。
rostopic info [オプション]
list | 現在使用中のトピックを表示する。 |
list 名前空間名 | 名前空間が一致するトピックのみを表示する。 |
-b | バッグファイルにあるトピックを表示する。 |
-p | パブリッシャーのみを表示する。 |
-s | サブスクライバ―のみを表示する。 |
-v | 詳細表示する。 |
--host | ホスト毎にグループ表示する。 |
現在使用中のトピックを表示します。
rostopic list [オプション]
list | 現在使用中のトピックを表示する。 |
list 名前空間名 | 名前空間が一致するトピックのみを表示する。 |
-b | バッグファイルにあるトピックを表示する。 |
-p | パブリッシャーのみを表示する。 |
-s | サブスクライバ―のみを表示する。 |
-v | 詳細表示する。 |
--host | ホスト毎にグループ表示する。 |
指定されたメッセージタイプのメッセージを指定された周期でトピックへ発行します。
メッセージを送る方法として以下の3つがあります。
(1)コマンドラインの引数で設定(ディフォルトはラッチモード)
$ rostopic pub my_topic std_msgs/String "hello there"
(2)パイプで入力(ディフォルト周期は10Hz)
$ rostopic echo chatter | rostopic pub bar std_msgs/String
(3)YAMLデータファイルで発行(ディフォルト周期は10Hz)
以下の1行目のコマンドでメッセージを記録した後にCtrl+Cで止め、2行目の
コマンドで、その内容を発行します。
$ rostopic echo chatter > chatter.bagy
$ rostopic pub -f chatter.bagy bar std_msgs/String
rostopic pub [オプション]
pub トピック名 メッセージタイプ名 [メッセージデータ...] | データをトピックへ発行する。 |
-l, --latch | ラッチモードを有効にする。(コマンドラインで引数を使う時はディフォルトでラッチモードになる。) |
-r 周期 | レートモードを有効にし、周期を設定する。(パイプ入力やファイル入力を使う場合、周期はディフォルトで10Hzになる。) |
-1, --once | 単発モードを有効にする。 |
-f YAMLファイル名 | AMLファイルからメッセージを読み出してトピックへ発行する。 |
トピックタイプを表示します。
rostopic type [オプション]
type トピック名 | 指定されたトピックのトピックタイプを表示する。 |
スタックのバージョンを表示します。
rosversion
なし |
Pythonプログラムの不具合を見つけるツールを起動します。
roswtf
なし |
GUIツールを起動します。ツールを使う前にマスターを起動しておく必要があります。
rqtの使い方はGUIツールを参照ください。
rqt
なし |