ROS小车记录系列(九)ROS系统开机自启动--撒花终结篇

ROS小车记录系列(九)ROS系统开机自启动--撒花终结篇

拖延症发作,留个尾巴一直没记录,作为一个完整的系统,开机自启动作用就不说了。
操作系统:ubuntu18.04 树莓派server版,ros:melodic,尝试了robot_upstart包 ,不知道什么原因,反正没起作用,后来参考的这篇,使用service方式解决,步骤忘记留图,截图也是来自这里。按照惯例,直接上操作步骤。

1、建立service

建立功能包,建立放脚本的scripts文件夹,在其中创建ros_startup.service、ros_start、ros_stop、ros_restart:

~/catkin_ws/src$ catkin_create_pkg auto_startup
~/catkin_ws/src$ cd auto_startup
~/catkin_ws/src/auto_startup$ mkdir scripts
~/catkin_ws/src/auto_startup$ cd scripts
~/catkin_ws/src/auto_startup/scripts$ touch ros_startup.service ros_start ros_stop ros_restart
~/catkin_ws/src/auto_startup/scripts$ chmod +x ros_start ros_stop ros_restart

在这里插入图片描述
(1)编辑ros_startup.service,内容如下,解释见参考文章。

[Unit]
Description=powerOn startup ros
 
[Service]
Type=simple
Restart=always
RestartSec=30
ExecStart=/usr/sbin/ros_start 
ExecStop=/usr/sbin/ros_stop
ExecRestart=/usr/sbin/ros_restart
 
[Install]
WantedBy=multi-user.target

(2)编辑ros_start脚本:

#!/bin/bash
source /opt/ros/melodic/setup.bash

source /home/ubuntu/catkin_ws/devel/setup.bash
roslaunch pavo_ros pavo_scan.launch

其中,source路径根据自己setup.bash路径来,pavo_ros是要启动的功能包名称,pavo_scan.launch换自己的launch文件。

(3)编辑ros_stop脚本:

#!/bin/bash
source /opt/ros/melodic/setup.bash
source /home/ubuntu/catkin_ws/devel/setup.bash
 
for i in $(rosnode list);do
    rosnode kill $i;
done
killall roslaunch

不解释了,自己理解。

(4)编辑ros_restart脚本:

#!/bin/bash
 
/usr/sbin/ros_stop
sleep 3
/usr/sbin/ros_start
 
exit 0

2、配置service,重启测试下

还在scripts目录下,新建config_service.sh:

~/catkin_ws/src/auto_startup/scripts$ touch config_service.sh
~/catkin_ws/src/auto_startup/scripts$ chmod +x config_service.sh

编辑config_service.sh内容:

#!/bin/bash
 
sudo cp ros_start /usr/sbin/
sudo cp ros_stop /usr/sbin/
sudo cp ros_restart /usr/sbin/
sudo cp ros_startup.service /lib/systemd/system/
sudo systemctl enable ros_startup.service

查看下:
在这里插入图片描述

执行脚本:

~/catkin_ws/src/auto_startup/scripts$ ./config_service.sh

查看是否已经启用:

~/catkin_ws/src/auto_startup/scripts$ systemctl is-enabled ros_startup.service 

在这里插入图片描述
出现enabled,表示已经成功启用,重新开机,开个终端,rostopic list可以看见话题了。

3、service相关操作

停止服务: sudo systemctl stop ros_startup.service
手动启动服务:sudo systemctl start ros_startup.service
重启服务:sudo systemctl restart ros_startup.service
禁止服务:sudo systemctl disable ros_startup.service
运行开机自启动:sudo systemctl enable ros_startup.service
查看后台日志:sudo journalctl --unit ros_startup.service

删除服务:
建立脚本uninstall_ros_service.sh,

~/catkin_ws/src/auto_startup/scripts$ touch uninstall_ros_service.sh

内容:

#!/bin/bash
 
/usr/sbin/ros_stop
sudo systemctl disable ros_startup.service
 
sudo rm /usr/sbin/ros_start
sudo rm /usr/sbin/ros_stop
sudo rm /usr/sbin/ros_restart
sudo rm /lib/systemd/system/ros_startup.service
 
exit 0

给权限,执行:

#!/bin/bash
~/catkin_ws/src/auto_startup/scripts$ chmod +x uninstall_ros_service.sh
~/catkin_ws/src/auto_startup/scripts$ ./uninstall_ros_service.sh

在这里插入图片描述

4、撒花

这个系列,记录自己从开头到放弃步骤,主要是框架搭建,重定位等等高端功能,不打算写博客了。产品已经上市,各位不要再私信源码,核心代码自己修改了些,恕不附送,自己摸索都能做出来的。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值