Open DunFenTiao opened 6 years ago
参考:ROS 提高篇 之 Launch 深入研究 - 01 — 启动文件的编程 — ROS 的 XML语法简介 http://blog.csdn.net/github_35160620/article/details/52425177 http://blog.csdn.net/github_35160620/article/details/52618271
使用 roslaunch 命令 的一个潜在的缺点:相比我们原来对每个节点在单独的终端使用 rosrun 命令启动的做法,roslaunch 则是让所有的节点共享同一个终端。 那些只需要生产简单的日志消息文件而不需要终端(console)输入的节点是容易管理的,而那些依赖终端输入的节点,比如 turtle_teleop_key 节点,它可能要优先的保留在独立的终端上。
庆幸的是,roslaunch 提供了一个简单的属性去实现这一点,在 node 元素里使用 launch-prefix 属性:
launch-prefix="command-prefix"
因为这个属性,启动这个 node 元素的 rosrun 命令大致相当于:
xterm -e rosrun turtlesim turtle_teleop_key
正如我们所知道的,xterm 命令会开一个新的终端窗口。 -e 参数告诉 xterm :执行其命令行剩余部分(rosrun turtlesim turtle_teleop_key)。
扩展: launch-prefix 属性不是只能使用 xterm 。它还可以使用gdb 或者 valgrind 或者 nice 命令。
TODO 试了tele key不行
参考:ROS 提高篇 之 Launch 深入研究 - 01 — 启动文件的编程 — ROS 的 XML语法简介 http://blog.csdn.net/github_35160620/article/details/52425177 http://blog.csdn.net/github_35160620/article/details/52618271
3-1-2-6 . 让每一个节点在单独的终端窗口中启动它们自己:
使用 roslaunch 命令 的一个潜在的缺点:相比我们原来对每个节点在单独的终端使用 rosrun 命令启动的做法,roslaunch 则是让所有的节点共享同一个终端。 那些只需要生产简单的日志消息文件而不需要终端(console)输入的节点是容易管理的,而那些依赖终端输入的节点,比如 turtle_teleop_key 节点,它可能要优先的保留在独立的终端上。
庆幸的是,roslaunch 提供了一个简单的属性去实现这一点,在 node 元素里使用 launch-prefix 属性:
launch-prefix="command-prefix"
因为这个属性,启动这个 node 元素的 rosrun 命令大致相当于:
xterm -e rosrun turtlesim turtle_teleop_key
正如我们所知道的,xterm 命令会开一个新的终端窗口。 -e 参数告诉 xterm :执行其命令行剩余部分(rosrun turtlesim turtle_teleop_key)。