使用shell脚本调用多个ROS启动文件
Posted
技术标签:
【中文标题】使用shell脚本调用多个ROS启动文件【英文标题】:Using a shell script to call multiple ROS launch files 【发布时间】:2014-06-11 20:01:38 【问题描述】:我刚刚发现我明天需要一个快速而肮脏的演示。我正在使用一个使用 ROS 的机器人,我们有一些包可以让它以简单的模式移动。我想用一个命令启动所有必要的节点。我需要在单独的终端中运行的命令行是:
roscore
rviz
roslaunch [空白 move_base 地图]
roslaunch [包] [移动脚本]
rqt_graph
所有这些程序都无限期地运行——例如,roscore 是一个协调其他节点的服务器。我不能只使用“&”将它们串成一行。它们每个都需要一个专用的终端窗口/进程。如何在 bash 或 Python 中做到这一点?
注意:我意识到使用自定义 ROS 启动文件可能会更好,但我没有时间。
【问题讨论】:
尝试 subprocess 模块...例如 subprocess.call(["your code","code params"],shell=False) 【参考方案1】:您可以从终端二进制文件本身启动您的软件,为每个软件获取一个新终端。这取决于您使用的终端。使用konsole
,您可以拥有
konsole -e command [args]
...
使用 gnome-terminal 你可以:
gnome-terminal -e command [args] &
使用 xterm:
xterm -e command [args] &
也可以参考类似的帖子:Run multiple .sh scripts from one .sh script? CentOS
【讨论】:
我们最终使用了 xterm。谢谢!以上是关于使用shell脚本调用多个ROS启动文件的主要内容,如果未能解决你的问题,请参考以下文章
ROS从入门到精通系列(二十五)--常用工具值shell脚本启动多条指令