结论
- rosrun 后跟着两个参数一个是程序包名,另一个是可执行文件名!!!(千万注意第二个参数不是节点名,很多人将可执行文件名与节点名设置为一个,所以网上很多教程说第二个参数为节点名,但实际是错误的)
- 一个节点可以发布几个话题,一个节点也可以订阅几个话题。
验证
请看下图中1和2,我们分别将文件名设置为“subscriber”,将节点名设置为“s”。
而在CMakeLists.txt中,我们将subscriber.cpp的可执行文件名设置为“sub_scribe"。
编译功能包,并运行小海龟程序。
这时我们先尝试通过rosrun直接启动节点"s",结果见下图。提示没找到可执行文件。
此时我们通过rosrun启动可执行文件“sub_scribe",结果见下图。成功。
通过rqt_graph查看node及topic,可以发现s才是节点,是它通过ros::NodeHandle订阅了小海龟的pose。