catkin_make 使用记录

ROS catkin_make 使用记录

  • 编译指定 ROS 包
  • 异常记录

编译指定 ROS 包

# 编译指定 ros 包
catkin_make  -DCATKIN_WHITELIST_PACKAGES="package1;package2"
# 或
catkin_make --only-pkg-with-deps 

异常记录

  1. ModuleNotFoundError: No module named ‘***’
    执行 python 脚本节点时,缺少指定库文件而报错。
    解决方法:
    1> 检查当前环境中包含指定的库并且安装正确。
  2. 当环境中确定包含第三方库,仍然报错
    检查 ros 包的 CMAkeLists.txt 文件是否使用了 catkin_install_python() 函数。 ROS 包在执行时会优先使用函数catkin_install_python() 指定的 python 来运行节点,而不使用 python 文件首行指定的 python 环境也不会使用 terminal 正在运行的 python 环境。其优先级如下:
catkin_install_python() 指定 > python 脚本指定 > terminal 环境运行

所以当 catkin_install_python() 函数中指定的 python 解释器和预计的 python 解释器不同时,也会报错。
解决方法:
1> 修改 catkin_install_python() 函数中的python解释器。
2> 或者在 devel/lib 路径下找到指定的 ROS 包以及名称对应的 python 文件,修改该 python 文件中的解释器。
3> 或者重新编译报错的包,并在编译时指定使用的 python 解释器。

# 编译时使用指定 python
catkin_make -DPYTHON_EXECUTABLE=/home/wy/anaconda3/envs/YOLO/bin/python3

4> 也可以不使用 catkin_install_python() 函数,只在对应的 python 脚本中指定 python 解释器,这样就不会因为环境问题而报错了。

你可能感兴趣的:(ros学习笔记,python)