ros2 run 某个节点时出现No executable foun
这是一个常见但容易混淆的问题,关键在于你运行 ros2 run 命令时,实际调用的并不是 Python 文件名,而是 setup.py 中 entry_points={'console_scripts': [...]} 字段所定义的“可执行入口名”。如下:
这句话的含义是:
1.创建一个名为 uwb_listener 的“可执行程序”(可以被 ros2 run 调用)
2.它会执行 listener_node.py即你目标文件中的 main 函数
3.listener_node 是你的目标文件名(listener_node.py 文件);
4.uwb_follow 是包名(包含 listener_node.py 文件的 Python 包)。
也就是说ros2 run后的内容需要你参考你的功能包中的setup.py文件的entry_points中注册的具体内容进行ros2 run运行。
所以上述例子正确运行为:
ros2 run uwb_follow uwb_listener