ubuntu_roscore与roslaunch开机自启动(8)

一.roscore自启动
1.编写自启动执行脚本autoload.sh,编写完使用bash autoload.sh先运行一下,检查有没有语法或权限的错误

#!/bin/bash
source /opt/ros/melodic/setup.bash
source /home/orbbec/catkin_ws/devel/setup.bash
roscore
exit 0

2.使用自启动界面gnome-session-properties添加脚本路径
方法一:bash /home/hh/autoloadsh运行脚本
在这里插入图片描述
使用 rosrun turtlesim turtlesim_node测试是否自启动成功,小乌龟启动成功证明roscore自启动设置成功

在这里插入图片描述
方法二:自启动并弹出终端显示,使用以下命令运行脚本
gnome-terminal -x /home/hh/autoload.sh
二.roslaunch自启动
1.编写autoload.sh脚本

#! /bin/bash 
#将系统的ros环境变量加入
source /opt/ros/melodic/setup.bash
#将自己工作空间环境变量加入
source /home/hh/catkin_ws/devel/setup.sh
export ROS_IP=`hostname -I | awk '{print $1}'`
export ROS_MASTER_USR=http://127.0.0.1:11311
#roscore
#方法一直接启动
roslaunch na na.launch
#方法二显示终端自启动
#gnome-terminal -- bash -c "roslaunch na na.launch"
exit 0

2.将autoload.sh 添加到gnome-session-properties中
方法一:bash /home/hh/autoloadsh运行脚本
在这里插入图片描述
方法二:自启动并弹出终端显示,使用以下命令运行脚本
gnome-terminal -x /home/hh/autoload.sh
三.遇到的问题
1.roscore可以使用 roslaunch 自启动失败(amd64笔记本遇到的问题)
解决办法一.只启用roscore或者roslaunch后成功运行
其它启动不起来思路,脚本中插入 sleep 10
解决办法二.(jetson nono 板子遇到的问题)
编辑/etc/lightdm/lightdm.conf文件,修改内容为以下

[Seat:*]
autologin-guest=false
autologin-user=root
autologin-user-timeout=0
greeter-session=lightdm-gtk-greeter

编辑/root/.profile文件,将最后一行替换为如下内容

tty -s && mesg n || true

reboot重启系统;

gnome-session-properties重新添加启动脚本

可添加测试启动项

gnome-terminal -x bash -c "ping 192.168.11.0"

保存并退出后重启
解决办法三:

gnome-session-properties工具增添的是./config/autostart下的内容文件
找到隐藏路径下的文件夹,点击进入autostart文件夹,报权限不够错误,可以正常启用的开发板是不会报这个错误的
在这里插入图片描述
重做系统 ,先不要装ibus之类的

添加gnome-terminal -x bash -c "ping 192.168.11.0"测试

重启之后自启动运行正常

猜你喜欢

转载自blog.csdn.net/qq_51108184/article/details/127061717