上电自启动机器人基本功能

背景介绍:前一段时间搭了一个基于ROS的移动底盘,到现在有一个问题,就是每次需要调试机器人的时候就要各种ssh,各种roslaunch命令。作为一个极客这种事情怎么能忍呢,所以一定要开机自启动。

我想,做ROS的先贤们一定不会容忍用rc.local这么底层的办法去解决这个问题。果然,robot_upstart包应运而生了。

参考链接:  http://wiki.ros.org/robot_upstart

       http://docs.ros.org/indigo/api/robot_upstart/html/

 

自己真的是井底之蛙啊,这么久才发现这个问题。要是我首先写个包来解决这个问题多好啊。

哈哈,自省过后,还是感谢ROS社区的大牛们给我们提供了一个又一个方便的工具。

关于这个包以及包里面的工具的用法

用之前,当然是要先安装这个包了:

sudo apt-get install ros-indigo-robot-upstart

基本用法是使用install脚本,install是robot_upstart包里的一个节点。运行命令如下:

rosrun robot_upstart install myrobot_bringup/launch/base.launch

这里只有一点要说明的就是,myrobot_bringup/launch/base.launch是要开机自启动的launch文件,launch文件里可以添加想要自启动的节点。

这就会在你的机器上创建一个名称为myrobot的job,这个job就是运行base.launch。下次开机重启的时候这个launch文件就自动运行了。我们也可以手动来启动或者停止

sudo service myrobot start
sudo service myrobot stop

如果说这个job异常的话,可以查看upstart的log文件:

sudo tail /var/log/upstart/myrobot.log -n 30

当然你如果要卸载这个开机脚本的话,可以使用uninstall,这个也是robot_upstart包里的一个节点

rosrun robot_upstart uninstall myrobot

另外,还有通过Python API来调用的高级用法,我反正暂时用不着,怕是现在研究了也容易忘,先mark一下。

参考链接: http://docs.ros.org/indigo/api/robot_upstart/html/jobs.html

posted @ 2016-08-24 12:06  kevinsxc  阅读(801)  评论(0编辑  收藏  举报