[转]开机启动ROS程序

** 使用Linux桌面系统对应开机启动程序:**

不同的Linux桌面系统,开机启动并不相同。Ubuntu实用GNOME桌面系统。它使用启动应用程序来设置随机启动。也可以在终端输入:gnome-session-properties来启动。

其它桌面系统对应软件并不一定相同:例如KDE----System Settings->System Administration->Startup and Shutdown

可以看到,Sam使用这个工具,启动了计算器。

可ROS 程序如何启动呢?

其实思路很简单,就是运行一个终端程序,终端程序则运行一个脚本,这个脚本中设置ROS, 启动ROS应用程序。

Sam想启动的 .launch为: beacool_bringup 包内的minimal.launch

所以创建启动脚本如下:

! /bin/bash source /opt/ros/indigo/setup.sh <wbr>

source /home/exbot/devel/setup.bash <wbr>

roslaunch beacool_bringup minimal.launch

其次:在启动程序的命令列表中,使用:

gnome-terminal -x /home/exbot/catkin_ws/beacool_ros/beacool_run.sh

则系统每次启动后,会开启一个终端窗口,并执行脚本中的launch.

此方法在大部分ubuntu+ROS下有用。但在TK1 Ubuntu下未起作用。暂时不知怎么回事。

3. Linux 经典方式, 开机启动Service:

首先介绍背景知识:Linux启动时,可以启动一些Service。 Sam很早之前搞Linux机顶盒,Android机顶盒时。很多程序就是以Service形式启动的。

3.1: 创建Service的方法:

A: 在/etc/init.d/目录下,创建要启动的脚本。例如名为:beacool_rfkill 这个脚本用来启动 bluetooth.

内容如下:

rfkill unblock bluetooth

B: 把脚本增加入Service:

<wbr>$ cd /etc/init.d

$ sudo update-rc.d beacool_rfkill defaults 95

此时,会把脚本beacool_rfkill 加入到/etc/rcX.d/目录中。X:0-6, 分别表示不同的启动级别。3为字符界面启动,5为GUI启动。其它不关键。

脚本名则在/etc/rc3.d/中变为:S95beacool_rfkill

命令中,最后的数字表示表示启动顺序。

C: 如果想要去掉此Service:

cd /etc/init.d sudo update-rc.d -f beacool_rfkill remove

3.2: ROS程序使用Service方式启动:

为了查看脚本是否有效,可以查看log. Sam在脚本中作了如下动作:

roslaunch beacool_nav amcl_demo.launch >> /home/ubuntu/catkin_ws/src/beacool.log 2>&1

这样,就会把log 发送到指定目录。

Log如下: <wbr>

/etc/rc2.d/S96dashgo_launch: 1: /etc/rc2.d/S96dashgo_launch: roslaunch: not found

这说明 ros没加入环境变量中。需要先把环境变量设置好。

可参见后面的写法:

. <wbr>/opt/ros/indigo/setup.sh <wbr>

. <wbr>/home/ubuntu/catkin_ws/devel/setup.sh <wbr>

roslaunch beacool_bringup minimal.launch <wbr>

此办法有个缺点:

如果有多个ROS工程要加入,例如:其中一个加为S98, 另一个加为S99。则S98会被执行。而S99并未执行。

虽然也可以后台执行,但会导致前一个退出。

所以如果一定要采用此方法:

可以把多个Launch合并。(并不建议)

4. 简单暴力的 rc.local (问题较多的方法):

/etc/rcX.d/中,都包含了/etc/init.d/rc.local. <wbr>通常都是最后一刻加入的,例如:S99rc.local

而它又引用了 /etc/rc.local

所以,可以简单的在/etc/rc.local 的exit 0 之前加入调用。

例如:Sam想要加入一个ROS项目:beacool_bringup 的minimal.launch.

A: 先创建一个script:

. <wbr>/opt/ros/indigo/setup.sh <wbr>

. <wbr>/home/ubuntu/catkin_ws/devel/setup.sh <wbr>

roslaunch beacool_bringup minimal.launch <wbr>

请注意:此时并没有使用source <wbr>/opt/ros/indigo/setup.bash.

而是采用 <wbr>. <wbr>/opt/ros/indigo/setup.sh <wbr>

是因为此时bash还未启动,而source是bash内部命令。此时找不到source.

B: 修改其权限:

sudo chmod 777 beacool_launch

C: 加入rc.local:

/etc/init.d/beacool_launch

此办法有个和方法3类似的缺点:

1. 加入后,如果ROS 程序不退出,则阻塞在这里。这意味着如果要启动多个launch. 则下一个不会被执行。

2. 当然有朋友会说,可以后台执行嘛。

/etc/init.d/beacool_launch & <wbr>

但如果后面再启一个launch, 前面beacool_launch所启动的ROS项目会退出。

所以如果一定要采用此方法:

可以把多个Launch合并。(并不建议)

转自: http://blog.sina.com.cn/s/blog_602f87700102wqy9.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容