ROS launch §
使用ROS launch调用Python脚本 ^launch-py §
- 脚本应以
#!/usr/bin/env python
或其他声明形式开头
- 使用
chmod +x YOURSCRIPT.py
使其可以直接执行
- launch脚本例程
<?xml version="1.0"?>
<launch>
<node pkg="YOUR_PACKAGE_NAME" name="NODE_NAME" type="YOUR_SCRIPT.py" output="screen">
<param name="PARAM_NAME" type="string" value="123" />
</node>
</launch>
- 参数可以以
<param />
加入,如果不指定type
,默认类型为int
,有大小上限,可能会报错int exceeds XML-RPC limits
- 读取参数可以使用
value = rospy.get_param("/NODE_NAME/PARAM_NAME")
- 调用子文件夹中的脚本时不需要指定子文件夹路径
(所以对于ROS而言同一个包下不应该有两个同名Python脚本?)
Debugging §
Roslaunch got a 'No such file or directory' error
- 检查文件开头是否有
#!usr/bin/python3
- 文件是否可以运行(
+x
)
- 换行是否为unix风格(可使用
sed -i 's/\r//' filename
进行处理)