Contents
始める前に
もし何が問題なのかわからない、もしくはどう直したら良いのか分からない場合はroswtf を試して下さい。roswtf はコードで実装されたFAQのようなものです。あなたの設定と何を実行しているかを見て問題を診断しようと試みます。単純に実行するか、roslaunchファイル名を与えて実行して下さい。例えば、
roswtf
もしくは
roswtf myfile.launch
実行中に問題に当たったときは、実行中にroswtfを試してみて下さい。
よくある問題
マスターが走っていない
もし以下のメッセージが表示された場合:
Unable to register with master node [http://localhost:11311/]: master may not be running yet. Will keep trying.
roscoreを実行する必要があります:
roscore
ネットワークコンフィギュレーション
プロセス間の通信で問題がある場合。
通信が拒否される、もしくは "Failed to contact publisher"と表示
ネットワーク内の全てのホストがお互いにpingを通せる事を確認して下さい。できなかった場合はROS_IPかROS_HOSTNAMEを設定するか、ホスト名を修正して下さい。
md5sumのミスマッチ
- これは同一メッセージが違うバージョンである事か、違うメッセージである事が原因です。
すべてのディレクトリが最新版に更新されているかを確認し、使っているパッケージ全てをrosmakeで再ビルドして下さい。
- 注意事項: 複数マシンで実行している場合、全てのバージョンを一致させる必要があります。
送信側と受信側がやりとりしようとしているメッセージに矛盾がないことを確認して下さい。
もしログファイルから実行している場合、内容が期限切れしている場合があります。rosrecordを参照下さい。
WARNING: 'mylaptop'などのローカルホストに対応するIPアドレス127.0.1.1が見つからず、あなたのROSノードはコミュニケーションに失敗する場合があります。
- これは通常、あなたのホスト名がDNS設定されていない場合に起こります。
ROS_IP環境変数をただしいIPアドレスに設定して下さい。
起動に失敗する
ノードがlaunch fileから起動していない
実行可能ファイルが存在することを確認して下さい。
上記にあるようにネットワークの設定を確認して下さい。
pr2_etherCATに関する問題はpr2_etherCAT/Troubleshootingを読んで下さい。
コンパイルに失敗する
パッケージがコンパイルできない
必要なsysdepsが全てインストールされている事を確認して下さい。 (Ubuntuでは bash <(rosdep satify PACKAGE_NAME) )
rosmakeし、全ての依存関係があらかじめビルドして下さい。
全てのパッケージが同じバージョンである事を確認して下さい。
'svn st' と 'svn diff' コマンドを使って問題に関して変更が無かったかを確認して下さい。
もし特定のパッケージが問題を起こしている場合、パッケージ内で'make clean'して下さい。
boost か log4cxx関連の問題:
boostとlog4cxxが/opt/ros 内にあるか ROS_BOOST_PATH が設定されていることを確認して下さい。詳しくはROS/Installationを見て下さい。 (rosboost-cfgを使う)
Transformに関する問題
tf documentationを見て下さい。
推奨される確認事項
他人の助けを求める前にするべき事
- 実行しているコードが自分の改訂後の版であることを確認して下さい。
- 実行中の全てのコードが、いかなるシステムへの変更であっても、その後に再ビルドされている事を確認して下さい。
リモートデバッギングに必要な情報
問題を再現するために必要な全てのステップに関する情報は大変重要です。例えば以下のような情報を含めて下さい:
- 実行している全てのコードのバージョン情報(svn revision numbers and urls. or release names with versions)
- 実行中のOS
- あなたがインストールしたsysdeps
- あなたがどう環境を構築したのか
- あなたが使用しているマシンと、それらがどう繋がっているのか
関係のある全てのエラーメッセージ:
- マスターのログファイル (通信に問題がある場合)
- 起動スクリプトのログファイル (起動に問題がある場合)
- launch file(s)、もしくは問題を再現するための手順
- 問題を起こしているノードのログファイル
- gdbバックトレースかcore file