rosrun or roslaunch can't find package or ERROR: cannot launch node of type

在編譯自己創建的ros包過程中,往往會出現roslaunch 或 rosrun找不到自己定義的package
原因是ros系統沒有正確定位package的位置。
解決辦法:
1.確定CMakeList中存在catkin_package語句,哪怕空參數也行:

catkin_package()

2.確定launch文件是否正確
pkg名字是否和自定義的pkg名字一致?
name是否和自定義的節點名字一致?
type是否和文件名字一致?

3.ROS_PACKAGE_PATH錯誤,輸入語句查看ROS_PACKAGE_PATH是否正確:

ehco $ROS_PACKAGE_PATH

如果裏面沒有你自定義的rospackage,那麼嘗試下面的方法。
4.添加ROS環境變量路徑到bashrc文件中:

echo "source <path_to_workspace>/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

搞定。

ERROR: cannot launch node of type
一般原因是沒source devel/setup.bash
解決辦法就是source devel/setup.bash

還有就是launch文件沒寫對:

<launch>
    ...
    <node pkg="pub_map" type="imagePubNode" output="screen" name="image_raw"/>
</launch>

這裏要說明的是:
pkg:是自己定義的功能包的名字,用rospack find查看自己功能包名字是否存在;
type:是CMakeList中add_executable的可執行應用名字(我的錯誤例子中,將launch文件中的type改成和CMakeList的add_executable名字一樣就可以了)
name:是自己定義的launch之後的名字
name=“image_raw”,結果見下圖:
在這裏插入圖片描述
name=“image_pub_node”,結果見下圖:
在這裏插入圖片描述

這下比較清楚了吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章