使用robot_upstart 实现ROS程序开机自启动
安装包
sudo apt-get install ros-indigo-robot-upstart
配置自启动launch 如:rosrun robot_upstart install test_bringup/launch/start.launch
service 启动和停止:
sudo service test start
sudo service test stop
实验
系统重启后start.launch 就启动了。
-
手动launch 其他 launch文件
可以看出是正常启动了。
手动关闭test服务 'sudo service test stop'
-
直接 rosrun 其他节点会报错 (说明ros master被关闭了)
5.使用 roswtf 检测
6.重新 手动launch 其他 launch文件, master被重新开启
结果
从上面的实验可以是得出,自启动后,开启新launch,再关闭自启动服务,会将ros master关闭。新launch不会保持master不被关闭。 但是重新手动launch新的launc文件,master会被重新打开。
【Tips】指定interface和master参数限制外部访问权限。
rosrun robot_upstart install --interface lo --master "http://127.0.0.1:11311" --user root --setup /home/test/ros_ws/setup.bash bringup/launch/test_start.launch --logdir /home/test/logs
参考文档:
robot_upstart源码:https://github.com/clearpathrobotics/robot_upstart.git