(一)
如果人工手动启动机器人,当给机器人加电时候,我们需要ssh到机器人端,然后启动激光的驱动launch文件,机器人启动的launch文件,导航的launch文件等,这对机器人的操作很不方便。
登录turtlebot
workstation@workstation:~$ ssh turtlebot@192.168.1.143
turtlebot
机器人室内定位和导航
turtlebot:roslaunch turtlebot_bringup minimal.launch
turtlebot:roslaunch turtlebot_navigation amcl_demo.launch map_file:=/tmp/my_map.yaml //导航命令
workstation:roslaunch turtlebot_rviz_launchers view_navigation.launch --screen //图形界面
如果我们希望当机器人上电以后,会自动启动一些传感器的驱动文件,定位导航,建图所需要的文件,并能按照我们的设定实现一定的功能,比如相应客户端的命令,并按照客户端的指令来动作,或者开机以后,自动对所在的环境进行建图和导航等。我们需要进行开机自启动的设置。
本文即介绍机器人开机自启动的方法和步骤
(二)
目前关于机器人开机自启动的设置大体上有下面几种方法:
1、使用自启动的ros包upstart
该包是通过创建一个服务来启动一些基本的launch文件,要是启动多个launch文件,可以通过把多个launch文件写入到一个launch中这样的方法来启动。
在开机启动文件rc.local文件中直接写入ros命令来达到开机启动效果
(三)
由于upstart使用和设置起来都比较方便,所以最终我们选择使用upstart的自启动方法
step1安装upstart
sudo apt-get install ros-indigo-robot-upstart
step2把要启动的节点都放在startall.launch文件内
运行rosrun robot_upstart install + startall.launch(带路径)
startall.launch所在的位置为
home/dmchen/catkin_ws/src/start/launch
rosrunrobot_upstartinstall--interfaceeth0--masterhttp://192.168.10.203:11311 start/launch/startall.launch
其中192.168.10.203是机器人底盘IP
install后面可以有下面一些参数:
usage: install [-h] [--job JOB] [--interface ethN] [--user NAME]
[--setup path/to/setup.bash] [--rosdistro DISTRO]
[--master http://MASTER:11311] [--logdir path/to/logs]
[--augment]
pkg/path [pkg/path ...]
必须的参数
pkgpath Package and path to install job launch files from要启动的launnch文件的package和其路径
可选参数
--job Specify job name. If unspecified,will be constructed from package name.
--interface Specify network interface name to associate job with.指定与操作有关网络的interface名字,可以在terminal中用ifconfig查看
--user Specify user to launch job as.
--setup Specify workspace setup file for the job launch context.
--rosdistro Specify ROS distro this is for.
--master Specify an alternative ROS_MASTER_URI for the job launch context.
--logdir Specify an a value for ROS_LOG_DIR in the job launch context.
--augment=False Bypass creating the job,and only copy user files. Assumes the job was prevIoUsly created.
step3启动、停止、卸载服务
sudoservicecsststart
其中csst为我们机器人所用的ubuntu系统的名字。
停止服务
sudo service csst stop
卸载
rosrunrobot_upstartuninstallcsst
step4重启即可实现开机自启动
重启命令:
1)、reboot
2)、shutdown-r now立刻重启(root用户使用)
3)、shutdown-r 10过10分钟自动重启(root用户使用)
4)、shutdown-r 20:35在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown-c命令取消重启
如果出现问题
sudo tail /var/log/upstart/robot.log -n 30
可以使用top命令可以查看处理器的运行状况
参考资料:
1、http://wiki.ros.org/robot_upstart
2、http://docs.ros.org/indigo/api/robot_upstart/html/install.html