1.概述
寫了這么多ROS
的launch
腳本悟衩,怎么才能開機(jī)就啟動(dòng)呢道宅,本文介紹1種方法秆吵,使用ROS
的 robot_upstart包,下面以pibot_bringup
package的bringup.launch
演示
2.robot_upstart包
2.1 安裝
使用pibot_install_ros.sh
一鍵安裝工具即可安裝所有pibot
所需要的ROS
包遏插,如需單獨(dú)安裝sudo apt-get install ros-{ROS_DIST}-robot-upstart
ROS_DIST
即為indigo
或者kinetic
2.2 設(shè)置
cd ~/pibot_ros/ros_ws/src && rosrun robot_upstart install pibot_bringup/launch/bringup.launch
pibot@pibot-desktop:~$ rosrun robot_upstart install pibot_bringup/launch/bringup.launch
/lib/systemd/systemd
Preparing to install files to the following paths:
/etc/ros/kinetic/pibot.d/.installed_files
/etc/ros/kinetic/pibot.d/bringup.launch
/etc/systemd/system/multi-user.target.wants/pibot.service
/lib/systemd/system/pibot.service
/usr/sbin/pibot-start
/usr/sbin/pibot-stop
Now calling: /usr/bin/sudo /opt/ros/kinetic/lib/robot_upstart/mutate_files
Filesystem operation succeeded.
** To complete installation please run the following command:
sudo systemctl daemon-reload && sudo systemctl start pibot
- 照著提示操作
sudo systemctl daemon-reload && sudo systemctl start pibot
2.3 測(cè)試
-
ps -aux | grep pibot_bringup
查看進(jìn)程
pibot@pibot-desktop:~/pibot_ros$ ps -aux | grep pibot_bringup
pibot 15971 96.3 0.7 85620 7488 ? Rsl 23:26 1:13 /home/pibot/pibot_ros/ros_ws/devel/lib/pibot_bringup/pibot_driver __name:=pibot_driver __log:=/tmp/0656ed38-5ba5-11e9-be9a-b827ebff3168/pibot_driver-2.log
已經(jīng)可以查到該進(jìn)程了
-
rosnode list
查看node
pibot@pibot-desktop:~$ rosnode list
/pibot_driver
/rosout
也可以看到2個(gè)node
-
roslaunch pibot keyboard_teleop.launch
啟動(dòng)鍵盤控制程序忱反,也可以支持控制小車了
為了驗(yàn)證程序是否開啟啟動(dòng)了,重啟后再次重復(fù)2.3的測(cè)試步驟即可
2.4 停止以及取消開機(jī)啟動(dòng)
- 啟動(dòng)&停止
sudo service pibot start
sudo service pibot stop
- 取消
rosrun robot_upstart uninstall pibot
3 robot_upstart服務(wù)名稱
可以看到上面的service名稱為pibot祝拯,通過查看源碼可以看到
job_name = args.job or pkg.split('_', 1)[0]
job_name
取了args.job
或者包名的下劃線前面甚带,上面例子args.job
為空則用了pibot_bringup
下劃線前面即pibot
我們只需要指定job參數(shù)即可自定義
cd ~/pibot_ros/ros_ws/src && rosrun robot_upstart install pibot_bringup/launch/bringup.launch --job=mybringup
我們就可以使用sudo service mybringup start
啟動(dòng)服務(wù)
4.總結(jié)
- 添加啟動(dòng)項(xiàng)
cd ~/pibot_ros/ros_ws/src
rosrun robot_upstart install pibot_bringup/launch/bringup.launch --job=mybringup
sudo systemctl daemon-reload
- 刪除啟動(dòng)項(xiàng)
rosrun robot_upstart uninstall mybringup
- 當(dāng)次啟動(dòng)服務(wù)
sudo service mybringup start
- 當(dāng)次關(guān)閉服務(wù)
sudo service mybringup stop
- 查看服務(wù)狀態(tài)
sudo service mybringup status