ROS/Troubleshooting

Last-modified: 2017-05-07 (日) 09:38:10

rosのコマンドを打った時に、"Unable to create temporary cache file"となったら

rospackコマンドを実行して次のようになったら

[rospack] Unable to create temporary cache file /home/<USERNAME>/.ros/.rospack_cache: Permission denied

/.rosの所有者がrootになっている可能性があります。
これを現在使用しているユーザーにすることで解決することができます。

sudo chown -R <USERNAME>:<USERNAME> ~/.ros

Ref
ROS-Users - error massage with rospack
http://ros-users.122217.n3.nabble.com/error-massage-with-rospack-td1406092.html

catkin_create_pkgをした時に"WARNING: Package name "(PACKAGE_NAME)" does not follow the naming conventions."というWARNIGが出たら

catkin_create_pkgをすると、次のようなエラーが出る時があります。

WARNING: Package name "(PACKAGE_NAME)" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits and underscores.

WARNINGなので無視していいんですが、Packageの名前の付け方の規則が推奨したものになっていないということです。
内容はメッセージに書いてある通りなのですが、
規則としては次のものがあるらしいです。
1. パッケージ名の初めの文字は小文字
2. 記号はアンダーバー"_"を使う

今回はアンダーバーではなく、普通のハイフン"-"を使っていたのでこのWarningが出ました。

Ref
ROS/Patterns/Conventions - ROS Wiki
http://wiki.ros.org/ROS/Patterns/Conventions

ROSで ROSException: ROS node has not been initialized yet. Please call init_node() first というエラーが出たら

ここを参考にして画像処理のサンプルプログラムを書いたのですが、( 参考というかただのコピペ )

cv_bridge/Tutorials/ConvertingBetweenROSImagesAndOpenCVImagesPython - ROS Wiki
http://wiki.ros.org/cv_bridge/Tutorial/ConvertingBetweenROSImagesAndOpenCVImagesPython

catkin_makeしたら次のようなエラーになってしまいました。

ROSException: ROS node has not been initialized yet. Please call init_node() first

まあ、書いてあるとおり「初めにinit_node()をしろ」ってことなので、
main関数のすぐ後にinit_node()を実行するようにした所、エラーが無くなりました。

init_node()なので初めに実行するようにするのはわかりやすいしいいのですが、
TutorialのPythonのサンプルプログラムでも" rospy.Publish() "の方が先に来てるんだよね。

まあ、このエラーになったらinit_node()が初めに実行されているか確認しましょう。