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进行处理)