6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ERROR: cannot launch node of type [hoge_pkg/huga.py]... に出会ったら疑うこと

Posted at

要約

ROSでpythonスクリプト書いてlaunchファイルのノードに追加してroslaunchで実行してみたら

ERROR: cannot launch node of type [hoge_pkg/huga.py]: can't locate node [huga.py] in package [hoge_pkg]

とか急に言われて「?」となったらchmod +x huga.pyしたかどうか思い出した方がいい。
pythonスクリプトとlaunchファイルを一気に作るとやりがちなミス。

rosrunまたはroslaunchでpythonスクリプトを実行するときはシバンと実行権限を忘れないように。

具体的に

例えばhoge_pkgというパッケージにhuga.pyを作成して

huga.launch

<launch>
    <!-- このへんにrosparamとかargとかいろいろタグつける -->
    <node pkg="hoge_pkg" name="huga" type="huga.py" output="screen" />
</launch>

上のようなhuga.launchを作成した上でそのままターミナルで

$ roslaunch hoge_pkg huga.launch

を実行するとタイトルのようなエラーが出る。
この状態で

$ rosrun hoge_pkg huga.py

を実行すると今度は

[rosrun] Couldn't find executable named huga.py below /home/user1/catkin_ws/src/hoge_pkg
[rosrun] Found the following, but they're either not files,
[rosrun] or not executable:
[rosrun]   /home/user1/catkin_ws/src/hoge_pkg/src/huga.py

のようなエラーが現れて、2つのエラーはファイルの実行権限を与えれば解消することがわかる。つまり

$ chmod +x huga.py

でOK.

ROSじゃなかったらpythonスクリプトはふつうpythonコマンドで実行するからシバン(#!/usr/bin/env python←こんなん)なくても実行権限与えなくても動作する。
ROSだとpythonコマンドで実行しないからシバンも実行権限も必要。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?