使用shell脚本调用ROS启动文件

时间:2018-06-12 08:18:13

标签: bash shell

我想创建一个文件*.sh,并像任何其他软件一样将其作为可执行文件运行,然后双击它。该命令是以下

roslaunch my_pro test_qt.launch

我只是在终端中运行它并启动我的软件。现在我想把它作为一个可执行文件,所以我尝试了这个,但它不起作用

gnome-terminal -e roslaunch my_pro test_qt.launch &
它说:

# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.# 
# Use “-- ” to terminate the options and put the command line to execute after it.# 

如何撰写我的*.sh文件?

修改 那样的东西?

#!/bin/bash
gnome-terminal -e
roslaunch my_pro test_qt.launch

1 个答案:

答案 0 :(得分:0)

我知道这篇文章很旧,但我最近想做一个类似的事情(使用桌面快捷方式进行 roslaunch)并且在过去几天给我带来了一些麻烦,所以我决定为可能感兴趣的任何人写下我采取的步骤未来。

首先,我在我的主目录中创建了一个隐藏文件夹来放置我将用于快捷方式的脚本和图像:

mkdir .dir_name

然后我将我想要使用的图像放在那里,并使用 sublime 文本编辑器创建了一个脚本(我的选择,你可以使用你最喜欢的 - 它完全没有区别)

subl .dir_name/launch.sh

启动文件如下所示:

#!/usr/bin/env bash

# Launch the robot
source /opt/ros/melodic/setup.bash 
source /home/user/ros_ws/devel/setup.bash 

echo "Launching application, please wait!"
roslaunch your_pkg your_launch.launch 

重要提示:您必须包含 bash 文件的来源,否则无法识别 roslaunch 命令!

重要说明 2:您必须使脚本可执行

chmod +x .my_dir/launch.sh

下一步是创建桌面快捷方式:

subl ~/Desktop/my_shortcut.desktop

并在我们刚刚创建的文件中添加以下内容:

[Desktop Entry]
Type=Application
Terminal=false $ true opens extra gnome-terminal
Name=Robot Launch
Icon=/home/user/.my_dir/logo.png
Exec=terminator -e "bash -c '/home/user/.my_dir/launch.sh;$SHELL'" 
$Exec=gnome-terminal -e "bash -c '/home/user/.my_dir/launch.sh;$SHELL'"

注意:我使用的是终止符,如果您使用的是默认的 gnome 终端,请注释终止符行并取消注释 gnome-terminal 行。

最后,您需要右键单击桌面快捷方式(运行一次后会出现图标)并转到权限选项卡。在那里你必须点击

allow executing file as program

现在双击快捷方式后,它将运行。第一次双击系统会再次询问您是否要执行此文件(出于安全原因),您必须单击是(毕竟它是您的文件;))

就是这样!享受您的桌面快捷方式启动 ros 代码!