ROS設定自啟動
自啟動方法:
1、使用自啟動的ros包upstart
該包是通過建立一個服務來啟動一些基本的launch檔案,要是啟動多個launch檔案,可以通過把多個launch檔案寫入到一個launch中這樣的方法來啟動。
2、利用ubuntu自帶的開機啟動檔案
在開機啟動檔案rc.local檔案中直接寫入ros命令來達到開機啟動效果
使用ros upstart設定自啟動.
1.建立一個launch檔案start.launch,加入需要自啟動的節點.
<node pkg="rosserial_python" type="spq_serial_node.py"/>
2.安裝upstart包
sudo apt-get install ros-kinetic-robot-upstart
3.將start.launch放入某個package目錄下, rosrun robot_upstart install 包開始的目錄至/start.launch
rosrun robot_upstart install --job job名 包開始的目錄至/start.launch
然後再執行sudo systemctl daemon-reload
sudo systemctl start job名
可設定引數:
rosrun robot_upstart install --interface eth0 --master http://192.168.10.203:11311 start/launch/startall.launch
其中install後面的引數介紹:
其中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.
4.啟動、停止、解除安裝服務sudo service job名 start
job名為上面設定的job名字,若沒有設定此項,則需要在注意後面提示中的sudo systemctl start job名
停止服務sudo service job名 stop
解除安裝服務rosrun robot_upstart uninstall job名
重啟命令:
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命令可以檢視處理器的執行狀況