前两篇博客( 《基于qualcomm平台的kincet应用系列一之Turtlebot(自动跟随机器人)上中篇》),我们给大家介绍了如何在基于qualcomm的410c开发板搭载kobubi机器人和kinect传感器实现Turtlebot项目的实操演示以及在实践过程中遇到的几个经典的问题案例分析及其解决方法。本篇是最后的收尾,给大家介绍两种如何实现Turtlebot的开机自启动方式。
一.背景:
Turtlebot是基于ROS系统的实现通讯控制的开源机器项目,在实践中我们发现要启动Turtlebot的各项功能(如跟随,3D场景等)时都需要手动去连接终端敲入指令实现,尤其在重启后又得重新操作一次,这种情况极大地降低了用户的体验度,本文基于此为大家介绍如何实现Turtlebot跟随功能的开机自启方式。
图1 Turtlebot系统
二.解决方法:
1.使用自启动的ros包upstart
该包是通过创建一个服务来启动一些基本的launch文件,要是启动多个launch文件,可以通过把多个launch文件写入到一个
launch中这样的方法来启动。
2.利用ubuntu自带的开机启动文件
在开机启动文件rc.local文件中直接写入ros命令来达到开机启动效果
三.实际操作:
1.使用自启动的ros包upstart:
(1).安装upstart:
sudo apt-get install ros-indigo-robot-upstart
(2). 把要启动的节点放入start.launch(自命名)内,如navigation/launch/start.launch
rosrun robot_upstart install navigation/launch/start.launch
(3). 启动服务
sudo service robot start
(4). 重启开发板
sudo reboot
(5).若出现问题,可以查看日志
sudo gedit /var/log/upstart/robot.log
(6).服务停止
sudo service robot stop
(7).卸载自启动
rosrun robot_upstart uninstall robot
2.利用ubuntu自带的开机启动文件
(1).编辑运行脚本,auto_runing.sh;
vim auto_runing.sh
roslaunch turtlebot_bringup minimal.launch &
sleep 15s
roslaunch turtlebot_follower follower.launch
(2).将auto_runing.sh添加到系统启动项中;
vim /etc/rc.local
在exit 0之前添加如下代码:
cd /home/linaro
./auto_runing.sh
(3).修改auto_runing运行权限;
sudo chmod +x /home/linaro/auto_runing.sh
(4).重启系统
sudo reboot
四.总结
修改完成后,当再次开机的时候,等待1到2分钟,会听到Turtlebot系统初始化成功的响声,然后机器就能自主开始活动。
图2 队列跟随