Roboware新建python节点后在rosrun找不到该节点(按TAB键)
问题描述(可忽略直接看解决办法)
今天在用Roboware新建ROS测试节点,创建完功能包之后,我先是添加了C++节点,Roboware会自动创建一个publish和subscribe节点(test_pub.cpp和test_sub.cpp),会发送hello world
消息,可以正常运行。但是我用同样的方法又新建一个python节点之后同样生成了test_pub.py和test_sub.py两个文件,cmake也正常,但是执行rosrun按TAB当时就找不到创建的python节点,自己输入完整的功能包名和节点名之后不出所料的报错如下:
[rosrun] Couldn't find executable named testpy_pub.py below /home/lenovo/Desktop/robot_1/src/testpy
[rosrun] Found the following, but they're either not files,
[rosrun] or not executable:
[rosrun] /home/lenovo/Desktop/robot_1/src/testpy/src/testpy_pub.py
或者
[rosrun] Couldn't find executable named testpy_pub below /home/lenovo/Desktop/robot_1/src/testpy
问题所在和解决办法:
找不到节点的原因是因为.py文件
没有执行权限
(虽然我不知道为什么cpp文件不需要权限,感觉是因为python是解释性语言需要执行权限去执行,而cpp本身是不需要执行的,而是去编译链接)
所以解决办法就是去cd 工程所在目录/src/功能包名/src
,这里就是节点所在目录,给两个文件添加执行权限chmod a+x testpy*
(我的节点名是testpy_sub.py和testpy_pub.py)就可以了。