Ubuntu16.04添加ROS开机脚本

1、新建个脚本文件 new_service.sh
通过bash写.sh文件的形式,将命令行一起写入一个脚本。直接按照一步步执行顺序写,会出现问题:因为有的一个命令在终端一直在执行,无法接下的命令。这就需要将前一个命令放到后台&,同时由于节点发布的先后顺序,需要进行延时操作sleep n 表示延时n秒。

注:要让ROS的关键词能够在终端识别,还得先source下ROS环境。
下面是turtlebot_3Dvision的例子说明:普通用户登录

#!/bin/bash
#source /opt/ros/kinetic/setup.bash
source /opt/ros/kinetic/setup.bash
source /home/agv/hydro_ws/devel/setup.bash
ROS_PACKAGE_PATH=~/hydro_ws/src:$ROS_PACKAGE_PATH
ROS_WORKSPACE=~/hydro_ws/src
echo roslaunch turtlebot_bringup
roslaunch turtlebot_bringup minimal.launch &
sleep 15
echo turtlebot_bringup 3dsensor.launch
roslaunch turtlebot_bringup 3dsensor.launch &
sleep 15
echo turtlebot_rviz_launchers
roslaunch turtlebot_rviz_launchers view_robot.launch &

让HAN` ROBOT Cyton机械手臂恢复到初始位置例子:root用户登录

#!/bin/bash
sudo chmod 777 /dev/ttyUSB0
source /root/catkin_ws/devel/setup.bash
roslaunch cute_bringup cute_bringup.launch &
sleep 20
source /root/catkin_ws/devel/setup.bash
rosservice call /cute_go_home “data: true” &

在进行下面操作之前,可以先copy一份测试一下.sh文件是否运行正确。
cp new_service.sh test.sh
sudo chmod u+x test.sh
./test.sh
操作步骤及运行结果符合预期后,进行下面操作。

2、设置权限

sudo chmod 755 new_service.sh

3、把脚本放置到启动目录下

sudo mv new_service.sh /etc/init.d/

4、将脚本添加到启动脚本

执行如下指令,在这里90表明一个优先级,越高表示执行的越晚

cd /etc/init.d/ sudo update-rc.d new_service.sh defaults 90

5、移除Ubuntu开机脚本

sudo update-rc.d -f new_service.sh remove

转载地址:https://blog.csdn.net/zyh821351004/article/details/41697241

猜你喜欢

转载自blog.csdn.net/weixin_41536025/article/details/85565784
今日推荐