使用robot_upstart 實(shí)現(xiàn)ROS程序開(kāi)機(jī)自啟動(dòng)
安裝包
sudo apt-get install ros-indigo-robot-upstart
配置自啟動(dòng)launch 如:rosrun robot_upstart install test_bringup/launch/start.launch
service 啟動(dòng)和停止:
sudo service test start
sudo service test stop
實(shí)驗(yàn)
系統(tǒng)重啟后start.launch 就啟動(dòng)了。
-
手動(dòng)launch 其他 launch文件
微信截圖_20190618111900.png
可以看出是正常啟動(dòng)了。
手動(dòng)關(guān)閉test服務(wù) 'sudo service test stop'
-
直接 rosrun 其他節(jié)點(diǎn)會(huì)報(bào)錯(cuò) (說(shuō)明ros master被關(guān)閉了)
微信截圖_20190618113323.png
5.使用 roswtf 檢測(cè)

6.重新 手動(dòng)launch 其他 launch文件, master被重新開(kāi)啟

結(jié)果
從上面的實(shí)驗(yàn)可以是得出,自啟動(dòng)后,開(kāi)啟新launch,再關(guān)閉自啟動(dòng)服務(wù),會(huì)將ros master關(guān)閉。新launch不會(huì)保持master不被關(guān)閉。 但是重新手動(dòng)launch新的launc文件,master會(huì)被重新打開(kāi)。
【Tips】指定interface和master參數(shù)限制外部訪問(wèn)權(quán)限。
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

