尝试掌握Ubuntu下自动启动运行脚本方法,参考如下
ROS节点开机自启动_熊猫飞天的博客-CSDN博客
ubuntu开机脚本自启动(含ROS程序启动)方法 | 码农家园
验证下如下命令:
gnome-terminal -x bash -c “source /opt/ros/kinetic/setup.bash;roslaunch turtlebot_bringup minimal.launch” #新建终端启动节点
sleep 8 #等待8秒
gnome-terminal -x bash -c “source /opt/ros/kinetic/setup.bash;rosrun turtlesim turtlesim_node” &
wait
exit 0
ubutnu开机自启动脚本 这里以开机启动ros的海龟测试命令为例,并用键盘控制移动
首先在某个目录下创建*.sh文件(这里在/home/wangmaozhu目录下创建start_ros.sh)
#创建start_ros.sh文件
touch start_ros.sh
用文本编译器打开该文件,将下列代码填入:
#!/bin/bash
gnome-terminal -- bash -c "source /opt/ros/noetic/setup.bash;roscore"
sleep 2 #执行下一个命令前,最好能等待上一个命令执行完成,否则容易造成启动失败,当节点启动比较慢时,最好将等待的时间变长
gnome-terminal -- bash -c "source ~/catkin_ws/devel/setup.bash;rosrun turtlesim turtlesim_node"
sleep 1
gnome-terminal -- bash -c "source ~/catkin_ws/devel/setup.bash;rosrun turtlesim turtle_teleop_key"
然后在终端中将该文件提升权限:
sudo chmod 777 start_ros.sh
为了保证自己写的终端是正确的,可以先运行一下看看是否正确。
./start_ros.sh
运行正常后在设置开机自动启动命令,在终端中输入:
#这个是ubbuntu的启动管理器,主要负责开机后执行什么操作
gnome-session-properties
点击 添加;
然后添加名称和注释,这个随便填,方便自己看明白就行。重要的是 命令 ,点击右侧 浏览,找到start_ros.sh
点击添加,然后设置ubutnu密码自动登录(该步骤应该是必须的,相关可以查看这里)。
点击 设置->左侧栏目 用户 -> 点击右上角 解锁 -> 输入密码 ->选择自动登录。
接下来重启看效果:
运行正常!!!如果需要运行ros其他的包文件等,只需要修改start_ros.sh文件中的内容就可以了。
start_ros.sh中应该注意:
由于ros是第三方库,我在命令行语句中都加上了source 命令来加载ros的环境变量,这将确保 ROS 系统和您的海龟图节点可以相互通信并正确工作。如:
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
#和后面的ros命令用";"分隔开来即可
#另外需要注意ros版本,这里使用的是noeitc,根据自己的ros版本进行配置。
验证该教程方法四是否可行:
先说结论:可行。但是有点问题
系统好像会优先运行该脚本,可能导致桌面段长时间卡顿情况。
好像优先级有问题
【尝试解决:】我尝试修改在profile.d文件夹下的优先级问题,还是不行
该教程方法一,在ubuntu20以后被默认禁用了,开启在使用比较麻烦;
步骤较为麻烦,不建议使用
参考网站:
[1]、ubuntu 20.04 supervisor开机自启动ros2 节点
[2]、ubuntu环境下通过shell脚本启动ROS小海龟项目
[3]、ROS节点开机自启动
[4]、ubuntu开机脚本自启动(含ROS程序启动)方法
版权归原作者 林木森sen 所有, 如有侵权,请联系我们删除。