It's High Time

プログラミング,電子工作,機械設計,そして暗号通貨

ROS実行時に xacro.py や No module named rospkg といったエラーが出る問題

問題

roslaunch実行時にxacroがどうとかエラーが出る.

Traceback (most recent call last):
  File "/opt/ros/kinetic/share/xacro/xacro.py", line 55, in <module>
    import xacro
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/xacro/__init__.py", line 42, in <module>
    from roslaunch import substitution_args
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 48, in <module>
    import rospkg
ImportError: No module named rospkg

Invalid <param> tag: Cannot load command parameter [robot_description]: no such command [$/opt/ros/kinetic/share/xacro/xacro.py '/home/username/catkin_ws/src/hoge/hogehoge/urdf/hoge.xacro']. 

Param xml is <param command="$/opt/ros/kinetic/share/xacro/xacro.py '$(find arm_description)/urdf/hoge.xacro'" name="robot_description"/>
The traceback for the exception was written to the log file

解法

pythonパッケージ"rospkg"がインストールされていません.

現在の設定が"ROSをインストールしたpython"であることを確認する.pyenvでバージョンの変更などをしていないだろうか

自分の場合,pyenvで同じ2.7系であっても最新のpythonに変更して使用していたため以下のコマンドでもとのバージョンに戻した.

$ pyenv default system

そもそもpythonの参照先が違うわけだからROS関連のモジュールは入ってないわけだ

広告を非表示にする