ubuntu20.04中设置包含ros节点的文件自启动

news2025/6/27 1:11:17

若文件里包含了ros话题的发布和接收,那么设置自启动时,应该首先将roscore设置为自启动。
首先确保roscore有一个systemd服务文件。如果还没有,需要在/etc/systemd/system/下创建一个。例如,一个基本的roscore.service文件可能如下所示:

[Unit]  
Description=ROS Master Node  
After=network.target  
  
[Service]  
Type=simple  
User=your_username  # 使用你的用户名  
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/ros/melodic/bin  # 根据需要修改  
Environment=LD_LIBRARY_PATH=/opt/ros/melodic/lib:/usr/lib  # 根据需要修改  
ExecStart=/bin/bash -c "source /opt/ros/melodic/setup.bash && roscore"  
Restart=on-failure  
  
[Install]  
WantedBy=multi-user.target

上面文件中的 PATH 路径查看方式:打开一个终端并输入echo $PATH
LD_LIBRARY_PATH:输入echo $LD_LIBRARY_PATH来查看LD_LIBRARY_PATH
上面文件中的melodic要替换成自己的ros版本号。

我的roscore.service文件为:

[Unit]  
Description=ROS Master Node  
After=network.target  
  
[Service]  
Type=simple  
User=ubuntu   
Environment=PATH=/opt/ros/noetic/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Environment=LD_LIBRARY_PATH=/opt/ros/noetic/lib 
ExecStart=/bin/bash -c "source /opt/ros/noetic/setup.bash && roscore"  
Restart=on-failure  
  
[Install]  
WantedBy=multi-user.target

然后依次运行:

sudo systemctl daemon-reload
sudo systemctl start roscore.service
sudo systemctl status roscore.service

在这里插入图片描述二、设置包含ros节点的文件自启动
包含ros节点的文件为terminal2car_receive.py

[Unit]  
Description=Terminal to Car Receiver Service  
After=network.target roscore.service  
Requires=roscore.service  
  
[Service]  
Type=simple  
ExecStart=/path/to/your/script_or_command_to_start_terminal2car_receive  
Restart=on-failure  
  
[Install]  
WantedBy=multi-user.target

上述文件中的/path/to/your/script_or_command_to_start_terminal2car_receive 要替换成运行terminal2car_receive.py时的完整路径。

terminal2car_receive.py的自启动服务文件名称为:terminal2car_receive.service,内容为:

[Unit]  
Description=Terminal to Car Receiver Service  
After=network.target roscore.service  
Requires=roscore.service  
  
[Service]  
Type=simple  
ExecStart=/usr/bin/env python3 /home/ubuntu/ccy/glove_car_bt/ros_udp_udp-main/src/udp_udp/scripts/terminal2car_receive.py  
Restart=on-failure  
  
[Install]  
WantedBy=multi-user.target

依次运行:

sudo systemctl daemon-reload
sudo systemctl start terminal2car_receive.service
sudo systemctl status terminal2car_receive.service

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1802062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html文件使用postcss-pxtorem适配移动端 使用tailwindcss库

项目截图 插件下载 npm i -D postcss8.4.38 postcss-cli10.1.0 postcss-pxtorem6.1.0 tailwindcss3.4.3postcss.config.js & tailwind.config.js postcss.config.js const pxToRem require(postcss-pxtorem) module.exports {plugins: [pxToRem({rootValue: 75,propLi…

[office] 快速删除excel中的空行和列的方法 #其他#学习方法#经验分享

快速删除excel中的空行和列的方法 用户在网上下载好的Excel表格打开之后发现有很多空白行,怎么样将这些空白行或单元格一次性删除掉呢?下面教大家在Excel中用定位一次性可以把空白行删除 用户在网上下载好的Excel表格打开之后发现有很多空白行,怎么样将…

【Unity】官方文档学习-光照系统

目录 1 前言 2 光照介绍 2.1 直接光与间接光 2.2 实时光照与烘焙光照 2.3 全局光照 3 光源 3.1 Directional Light 3.1.1 Color 3.1.2 Mode 3.1.3 Intensity 3.1.4 Indirect Multiplier 3.1.5 Shadow Type 3.1.6 Baked Shadow Angle 3.1.7 Realtime Shadows 3.1…

TriForce: 突破长序列生成瓶颈的分层投机解码技术

在人工智能领域,大型语言模型(LLMs)的长序列生成能力一直是研究的热点。然而,随着模型规模的增长,推理过程中的内存和计算瓶颈成为了限制其应用的主要障碍。为了解决这一问题,Carnegie Mellon University和…

[数据集][目标检测]盲道检测数据集VOC+YOLO格式2173张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2173 标注数量(xml文件个数):2173 标注数量(txt文件个数):2173 标注…

网络安全快速入门(十五)(下)手动创建用户及su,sudo命令

15.8 序言 前面我们已经大概了解了创建用户一些相关文件,接下来我们来手动创建用户,话不多说,我们直接开搞!!! 15.9 手动创建用户: 一般来讲,我们创建用户通过useradd和passwd命令来…

如何合理使用群发短信呢?(短信接口JSON实例)

随着时代的发展,越来越多的营销推广也开始有线下转移到了线上,短信也变成了企业与用户之间交流沟通的桥梁,那么这么多的企业选择使用短信平台,到底群发短信好不好用呢?今天乐讯通短信平台就为大家来介绍一下群发短信营…

3D Gaussian Splatting for Real-Time Radiance Field Rendering

辐射场方法最近在基于多张照片或视频进行新视角合成方面取得了革命性进展。然而,实现高视觉质量仍然需要耗时且计算成本高的神经网络,而最近的快速方法不可避免地在速度和质量之间进行了权衡。对于无界和完整的场景(而不是孤立的物体&#xf…

MacOS_奇安信天擎卸载指南,无需管理员密码

背景 奇安信天擎是一款基于云端的终端安全管理软件,在某些情况下,用户可能需要卸载该软件,例如 1、入职企业后使用的是自己的电脑,离职后监控软件还在 2、自己无意下载的软件或被病毒感染后强制下载的垃圾软件 3、员工看不惯企业监控自己的这个行为,使用技术手段屏蔽企业…

微信小程序 画布canvas

属性说明 属性类型默认值必填说明最低版本typestring否指定 canvas 类型,支持 2d (2.9.0) 和 webgl (2.7.0)2.7.0canvas-idstring否canvas 组件的唯一标识符,若指定了 type 则无需再指定该属性1.0.0disable-scrollbooleanfalse否当在 canvas 中移动时且…

python中的函数递归

函数递归,就是一个函数,自己调用自己。 如上图所示,是一段通过定义函数,编写函数体来实现for循环。实现的是从1到n的累乘。即求n的阶乘, 如上图所示,是一段函数的递归来实现1到n的累乘操作,将1*…

问题:前肢的前方称() #微信#经验分享#微信

问题:前肢的前方称() A . 掌侧 B . 跖侧 C . 背侧 D . 胫侧 E . 桡侧 参考答案如图所示

数学模型:操作系统中FCFS、SJF、HRRN算法的平均周转时间比较 c语言

摘 要 研究目的:比较操作系统中进程调度FCFS、SJF、HRRN算法的平均周转时间和带权周转时间的大小关系。 研究方法:在建模分析时,分别举4个进程的例子,1个进程用两个字母分别表示到达时间和执行时间。分两种极端情况&#xff0c…

python数据分析-心脏衰竭分析与预测

研究背景 人的心脏有四个瓣膜,主动脉银、二尖、肺动脉和三尖源 不管是那一个膜发生了病变,都会导致心脏内的血流受到影响,这就是通常所说的心脏期膜病,很多是需要通过手术的方式进行改善的。随着人口老龄化的加剧,,心…

如何在快团团上找到优质的供货团长和挑选合适的产品进行推广?

在快团团上找到优质的供货团长和挑选合适的产品进行推广的方法如下: 筛选优质供货团长: 选择专业品类:根据你熟悉的领域和目标客户的需求,选择相应的专业供货团长。查看帮卖口碑标签:通过查看团长的帮卖口碑标签&#…

【排序算法】计数排序(CountSort)

一、定义 计数排序(CountSort)是一种非比较的排序,它的优势在于在对一定范围内的整数排序时,它的时间夫扎渡为为Ο(nk)(其中k是整数的范围),快于任何比较排序算法。 这是一种通过空间换取时间的…

vue antdesgin table 动态表头动态数据示例

以下是一个基于 Vue 和 Ant Design Vue 的示例&#xff0c;可以动态生成表格的表头和数据&#xff1a; <template><div><a-button click"addColumn">添加列</a-button><a-table :columns"columns" :dataSource"dataSource…

2024年全国一高考数学压轴题

(3) 证明: 显然, 等差数列 { a 1 , . . . , a 4 n 2 } \{a_{1},...,a_{4n2}\} {a1​,...,a4n2​} 是 ( i , j ) (i, j) (i,j)-可分的等价于等差数列 { 1 , . . . , 4 n 2 } \{1,...,4n2\} {1,...,4n2} 是 ( i , j ) (i,j) (i,j)-可分的. 前推后显然, 我们考虑后推前, 在去…

U盘文件系统结构损坏的应对与预防

在数字化时代&#xff0c;U盘作为便携式存储设备&#xff0c;其重要性不言而喻。然而&#xff0c;当U盘文件系统结构损坏时&#xff0c;我们可能会面临数据丢失的风险。本文将深入探讨U盘文件系统结构损坏的问题&#xff0c;分析其产生的原因&#xff0c;并给出相应的数据恢复方…

JMS VS AMQP

JMS&#xff08;Java Message Service&#xff09;是一个为Java平台设计的API&#xff0c;主要针对Java开发者提供了一套用于企业级消息服务的标准接口。而AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;是一个应用层协议&#xff0c;它提供了一个开放的、标准…