Ubuntu18.04中launch文件开机自启

  本科毕业季,老板给我分配了三个人,其中有一个是实现小车4G通讯,师姐给我的思路是在ros主控端实现发布数据的launch文件开机自启,并通过qt将数据读取到。今天就讲一下如何实现launch文件开机自启吧。虽然没少看博客,但是第一次写博客还是心情忐忑的,万一写到一半不想写了hhhh。

  之前上网找了很多方法问了很多人,launch文件的开机自启大致两种方法。

1、用ros自带的功能包robot_upstart,这个真的是让我伤心透了,调了1天,和网上的步骤一模一样,也都会确认返回指令

sudo systemctl daemon-reload && sudo systemctl start turn

 输入上面的指令也都会显示成功添加,并且看过之前的博客有写,可以查看etc/ros/melodic/start.d/.installed_files文件是否存在来确定自启任务是否添加成功。我的都有,但是就是开机不自启,俺也不知道为啥。含泪把具体步骤列下来吧,希望有大佬看到后可以给我个解答。

安装robot_upstart

melodic版本的ros系统直接在ros端输入如下指令就可以安装robot_upstart。

sudo apt install ros-melodic-robot-upstart

添加自启任务

(1)先在终端输入roscore启动ros

(2)将需要启动的所有ros节点写在一个launch文件,我是单独的一个launch文件,如果是要启动多个launch文件可以用include进行嵌套,具体查看launch文件的写法~ 

我用到的launch文件是 wheeltec_robot工作空间下的turn_on_wheeltec_robot/launch/start.launch

(3)添加launch文件

rosrun robot_upstart turn_on_wheeltec_robot/launch/start.launch 

添加成功后,输入屏幕上给出的指令进行确定启动

** To complete installation please run the following command:​
sudo systemctl daemon-reload && sudo systemctl start turn

重启、停止、卸载自启任务

因为robot_upstart的开机自启没有成功,所以输入这一部分指令也看不出效果,我就把这些demo放在下面吧

sudo systemctl restart start   #重启任务 后面的start是对应的launch文件名
sudo sysremctl stop start      #关闭任务 
rosrun robot_upstart uninstall start     #卸载任务

确认任务是否添加成功

查看etc/ros/melodic/start.d/.installed_files文件是否存在。其中melodic是什么俺想大家应该都知道,start.d是start.launch开机自启任务生成的文件。

2、用Linux系统对应的开机启动程序Startup Applications(18.04版本的Ubuntu系统)

创建一个sh脚本文件

sudo su   #进入超级用户模式
nano start.sh   #使用nano编辑器编辑一个名为start的脚本文件

在start.sh脚本文件中添加以下内容

#!/bin/bash
 
source /opt/ros/melodic/setup.sh    #声明系统环境
source /home/wheeltec/wheeltec_robot/devel/setup.sh     #声明所在的工作空间

roslaunch turn_on_wheeltec_robot start.launch     #运行launch文件脚本内容

exit 0

保存后给脚本添加执行权限

sudo chmod 777 start.sh

启动Ubuntu自带程序Startup Applications,添加新program

Name:start   #随便起名
Command:gnome-terminal -x /home/wheeltec/start.sh    #gnome-terminal  执行打开终端命令  后面是start.sh脚本文件的所在路径

这样,每次开机系统就会打开一个终端,并执行start.sh脚本文件里面的内容,并且开机自启的文件是launch文件,所以不用输入roscore指令启动ros

上面一切操作都是在jetson TX2上面操作的,将他连接无人车,开机自启就会运行start.sh脚本,而脚本里面的launch文件是启动初始化节点,通过此指令就可以开启无人车的话题,用虚拟机连接TX2的wifi,就可以直接直接rostopic list查看无人车的话题。

参考了一些博客,附在下面

https://blog.csdn.net/jiangsala/article/details/88796261?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control

gnome-terminal技巧_swust_long的专栏-CSDN博客_gnome-terminal

的robot_ROS节点开机自启动(robot_upstart方法)_发对象的小仙女的博客-CSDN博客

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
linux ubuntu fastboot 下载 方法1: GSI Flashing Procedure For Android-Q Fresh Launch Build(DP Enabled): Flash META Change directory to Apps path Flash below Apps and GSI image. Apps Build flashing fastboot flash persist persist.img cd secondary-boot fastboot flash boot_a boot.img (boot.img image for CTS-on-GSI, boot-debug.img for VTS testing) fastboot flash dtbo_a dtbo.img fastboot flash recovery_a recovery.img fastboot flash super super.img fastboot flash userdata userdata.img fastboot flash vbmeta_a vbmeta.img fastboot flash vbmeta_system_a vbmeta_system.img GSI Flashing steps: fastboot reboot fastboot fastboot flash system fastboot -w fastboot flashing lock fastboot reboot NOTE: Dynamic Partition mandatory for android-Q Fresh Launch devices. Device should not come out of fastboot mode between Apps flashing and GSI flashing. For Android-Q Upgraded Build or Android-P Builds: Apps and GSI image flashing: fastboot flash userdata userdata.img fastboot flash persist persist.img cd secondary-boot fastboot flash boot_a boot.img fastboot flash dtbo_a dtbo.img fastboot flash vendor_a vendor.img fastboot flash system_a fastboot --disable-verification flash vbmeta_a vbmeta.img fastboot flashing lock fastboot reboot 方法2: 这个版本刷GSI时,oem unlock的操作有更新如下: adb reboot-bootloader fastboot oem sim-allowunlock (允许解锁) fastboot flashing unlock (这里需要按 音量上键 确认) adb reboot-bootloader fastboot flash system system_xxxxxxxxxxx.img fastboot --disable-verification flash vbmeta vbmeta.img fastboot reboot 取消验证,取消AVB验证 fastboot --disable-verification flash vbmeta vbmeta.img 之后就可以通过fastboot烧录boot.img vendor.img system.img 单独烧录。 3.4 AndroidO userdebug版本刷机时禁止dm-verity AndroidO dm-verity disable flag存在于vbmeta.img(keystore分区);而老版本是放置在system.img分区的dm-verity metadata。 1)在设置打开OEM unlocking选项 2)在设置打开USB debugging选项 3)adb reboot bootloader 4)fastboot flashing unlock和fastboot oem unlock 5)fastboot --disable-verity --disable-verification flash vbmeta vbmet

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值