当前位置: 首页 > news >正文

Ubuntu22.04使用Systemd设置ROS 2开机自启动遇到的问题

在查找网上的各种开机自启动资料配置好开机自启动后,使用ros2 topic list不能显示话题。

  • 1、问题解决:用户问题与domenID问题
  • 2、ROS2开机自启动服务教程
  • 3、多个ROS2开机自启动服务教程

1、问题解决:用户问题与domenID问题

在root用户下能看到话题,但是不能在普通用户下看到,在启动脚本中使用以下指令后,仍然无法在普通用户看到话题。

#echo "nvidia" | su - nvidia -s /bin/bash /home/nvidia/rc.sh

解决方法:
将root用户和普通用户的~/.bashrc环境变量中的export ROS_DOMAIN_ID=0

sudo vi ~/.bashrc
export ROS_DOMAIN_ID=0sudo su
sudo vi ~/.bashrc
export ROS_DOMAIN_ID=0

2、ROS2开机自启动服务教程

以下是通过Systemd设置ROS 2开机自启动方法:

创建服务:

sudo vi /usr/lib/systemd/system/start-one.service
[Unit]
Description=start-one[Service]
Type=simple# 当前的用户名
User=nvidia# 开机自启动脚本start_one.sh
ExecStart=/home/nvidia/start_one.sh    PrivateTmp=true
KillMode=control-group[Install]
WantedBy=multi-user.target

创建自启动脚本:

sudo vi start_one.sh
#!/bin/bash
cd /home/nvidia/dev_ws
source  ~/.bashrc
source /opt/ros/humble/setup.bash
source /home/nvidia/dev_ws/install/setup.bash
ros2 launch package package.launch.xml

给服务和脚本权限:

sudo chmod 777 /usr/lib/systemd/system/start-one.service
sudo chmod 777 start_one.sh

重新加载服务:

sudo systemctl daemon-reload  

设置开机自启动服务:

sudo systemctl start start-one.service 
sudo systemctl enable start-one.service

查看服务状态:

sudo systemctl status start-one.service

取消关闭服务取消开机自启动:

sudo systemctl stop rstart-one.service
sudo systemctl disable start-one.service

3、多个ROS2开机自启动服务教程

如果有多个ROS2的launch,则需要创建多个服务,并且需要在服务里设置好先后顺序。
先按照上述设置好start-one.service,增加优先级设置。

[Unit]
Description=start-one
Before=start-two.service #这里是设置优先级的,也就是说当前的服务在start-two.service之前启动[Service]
Type=simple# 当前的用户名
User=nvidia# 开机自启动脚本start_one.sh
ExecStart=/home/nvidia/start_one.sh    PrivateTmp=true
KillMode=control-group[Install]
WantedBy=multi-user.target

创建第二个服务:

sudo vi /usr/lib/systemd/system/start-two.service
[Unit]
Description=start-two
After=start-one.service[Service]
Type=simple# 当前的用户名
User=nvidia# 开机自启动脚本start_two.sh   
ExecStart=/home/nvidia/start_two.sh    PrivateTmp=true
KillMode=control-group[Install]
WantedBy=multi-user.target

创建自启动脚本:

sudo vi start_two.sh    
#!/bin/bash
cd /home/nvidia/dev_ws
source  ~/.bashrc
source /opt/ros/humble/setup.bash
source /home/nvidia/dev_ws/install/setup.bash
ros2 launch package_two package_two.launch.xml

给服务和脚本权限:

sudo chmod 777 /usr/lib/systemd/system/start-two.service
sudo chmod 777 start_two.sh  

重新加载服务:

sudo systemctl daemon-reload  

设置开机自启动服务:

sudo systemctl start start-two.service 
sudo systemctl enable start-two.service

查看服务状态:

sudo systemctl status start-two.service

相关文章:

Ubuntu22.04使用Systemd设置ROS 2开机自启动遇到的问题

在查找网上的各种开机自启动资料配置好开机自启动后,使用ros2 topic list不能显示话题。 1、问题解决:用户问题与domenID问题2、ROS2开机自启动服务教程3、多个ROS2开机自启动服务教程 1、问题解决:用户问题与domenID问题 在root用户下能看到…...

AI安全研究滞后?清华专家团来支招

在21世纪的科技浪潮中,人工智能(AI)无疑是最为耀眼的一抹亮色。随着技术的不断突破,AI正以前所未有的速度融入我们的日常生活,重塑着社会、经济乃至人类文明的面貌。然而,在这股汹涌澎湃的发展洪流中&#…...

12寸FAB 信息部内外工作职责的一些划分构思

FAB的信息部,也常被称为IT部门或信息化部门,承担着确保整个制造工厂的信息技术系统高效、安全运行的职责。以下是 一、FAB信息部的一些关键部门职责: 1. 战略规划:制定和实施信息技术战略,以支持FAB的长期业务目标和增…...

css做旋转星球可举一反三

<!DOCTYPE html> <html lang"en"><head> <meta charset"UTF-8" /> <title>旋转的星球</title> <style type"text/css">.box {/*position: relative;*/position: absolute;width: 139px;height: 139p…...

AcWing 1256:扩展二叉树

【题目来源】https://www.acwing.com/problem/content/1258/【题目描述】 由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树&#xff0c;所以对二叉树做如下处理&#xff0c;将二叉树的空结点用 补齐&#xff0c;如图所示。 我们把这样处理后的二叉树称为原二叉树…...

三维家:SaaS的IT规模化降本之道|OceanBase 《DB大咖说》(十一)

OceanBase《DB大咖说》第 11 期&#xff0c;我们邀请到了三维家的技术总监庄建超&#xff0c;来分享他对数据库技术的理解&#xff0c;以及典型 SaaS 场景在数据库如何实现规模化降本的经验与体会。 庄建超&#xff0c;身为三维家的技术总监&#xff0c;独挑大梁&#xff0c;负…...

ai智能语音机器人是如何影响客户体验的?电销机器人部署

随着人工智能技术的进步&#xff0c;越来越多的企业在寻求如何将人工智能技术融合到现有的商业模式上&#xff0c;进而实现自动化、智能化。在通信行业大量使用智能语音机器人、聊天机器人、客服机器人时&#xff0c;它能和“客户体验”并驾齐驱吗&#xff0c;还是可以让客户体…...

vue3使用v-html实现文本关键词变色

首先看应用场景 这有一段文本内容&#xff0c;是项目的简介&#xff0c;想要实现将文本中的关键词进行变色处理 有如下关键词 实现思路 遍历文本内容&#xff0c;找到关键词&#xff0c;并使用某种方法更改其字体样式。经过搜寻资料决定采用v-html实现&#xff0c;但是v-h…...

C#面:举列 a=10,b=15,在不用第三方变量的前提下,把a,b的值互换

要在不使用第三方变量的前提下交换a和b的值&#xff0c;可以使用异或运算。异或运算的特性是&#xff0c;对于两个相同的数进行异或运算&#xff0c;结果为0&#xff1b;对于任意数与0进行异或运算&#xff0c;结果为该数本身。因此&#xff0c;可以通过多次异或运算来实现变量…...

编写动态库

1.创建库.c .h文件 2.编写Makefile文件 3.make之后形成.so文件 4.make output,形成mylib 5.把mylib拷贝到test里面 mv mylib /test 6.编译 gcc main.c -I mylib/include -L mylib/lib -lmymethod形成a.out 但是直接执行会出现以下问题 很显然没有找到动态库 7.解决加载找不…...

记一次阿里云服务器java应用无法响应且无法远程连接的问题排查

问题表现 java服务无响应&#xff0c;无法远程链接到服务器。 今天中午12点多&#xff0c;应用直接崩溃。后续进入到服务器&#xff0c;发现java进程都不在了&#xff0c; 排查过程 先安装atop工具 安装、配置并使用atop监控工具 等下次再出现时看相关时间点日志&#xff…...

雷池WAF+Modsecurity安装防护及系统加固

君衍. 一、雷池WAF1、什么是雷池2、什么是WAF3、雷池的功能4、WAF部署架构5、整体检测流程 二、雷池WAF环境依赖1、查看本地CPU架构2、Docker安装2.1 卸载旧版本2.2 安装yum-utils工具包2.3 设置镜像仓库2.4 安装docker2.5 启动docker并查看版本 3、Docker Compose安装3.1 卸载…...

【Python】已解决:SyntaxError: positional argument follows keyword argument

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;SyntaxError: positional argument follows keyword argument 一、分析问题背景 在Python编程中&#xff0c;当我们在调用函数时混合使用位置参数&#xff08;p…...

leetcode-20-回溯-切割、子集

一、[131]分割回文串 给定一个字符串 s&#xff0c;将 s 分割成一些子串&#xff0c;使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ] 分析&…...

利用深度学习模型进行语音障碍自动评估

语音的产生涉及器官的复杂协调&#xff0c;因此&#xff0c;语音包含了有关身体各个方面的信息&#xff0c;从认知状态和心理状态到呼吸条件。近十年来&#xff0c;研究者致力于发现和利用语音生物标志物——即与特定疾病相关的语音特征&#xff0c;用于诊断。随着人工智能&…...

TP8 JS(html2canvas) 把DIV内容生成二维码并与背景图、文字组合生成分享海报

方法一&#xff1a;前端JS生成(推荐) 注意&#xff1a; 1.这个网页只能截图图片效果代码&#xff0c;其它任何html效果都不能有&#xff0c;不然截图就不准确 2.如果要生成的图片DIV内容中引用了第三个方的图片&#xff0c;就是不使用同一个域名下的图片&#xff0c;需要把后…...

计算机科学中的接口(Interface)介绍

计算机科学中的接口&#xff08;Interface&#xff09;介绍 计算机科学中&#xff0c;接口是一个广泛的概念&#xff0c;在不同上下文中有不同含义&#xff1a; 1.任何两电路或设备间的连接电路&#xff0c;用于连接CPU与内存、CPU与外设之间。这是一个重要的硬件层面的接口概…...

大创项目推荐 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…...

黑芝麻科技A1000简介

文章目录 1. A1000 简介2. 感知能力评估3. 竞品对比4. 系统软件1. A1000 简介...

详解C语言分支与循环语句

分支语句 if elseswitch 循环语句 whilefordo while goto语句 文章目录 1.什么是语句2.分支语句&#xff08;选择结构&#xff09;2.1 if语句2.1.1 悬空else2.1.3 练习 2.2 switch语句2.2.1 在switch语句中的break2.2.2 default子句 3.循环语句3.1 while循环3.1.1 while语句中…...

微信H5支付v3版Java实战:从零构建移动端支付解决方案

1. 微信H5支付的应用场景与优势 移动端支付已经成为现代商业不可或缺的一部分。微信H5支付作为微信支付生态中的重要一环&#xff0c;特别适合那些需要在非微信客户端浏览器中实现支付功能的场景。想象一下这样的画面&#xff1a;用户在手机浏览器中浏览你的电商网站&#xff…...

从线索到成交,陀螺匠帮我打通了客户管理全流程

作为一个从业多年销售&#xff0c;我觉得我在管理客户过程中遇到的这些问题&#xff0c;很多企业多多少少也出现过。比如销售小王跟了一个月的客户&#xff0c;最后发现小李早就联系过了&#xff0c;经常白忙活&#xff1b;好不容易谈成的单子&#xff0c;合同改来改去&#xf…...

ESP32S3-Cam + MPU6050 DMP移植避坑实录:从编译报错到姿态数据稳定输出的完整流程

ESP32S3-Cam与MPU6050 DMP移植实战&#xff1a;从编译报错到稳定姿态解算的全流程解析 当ESP32S3-Cam遇上MPU6050的DMP&#xff08;数字运动处理器&#xff09;功能&#xff0c;本应是物联网项目中实现低成本姿态检测的完美组合。但实际移植过程中&#xff0c;开发者往往会遭遇…...

别再到处找了!这12个三维点云开源数据集,够你从入门到项目实战

三维点云实战指南&#xff1a;12个精选开源数据集与精准匹配策略 当你第一次打开三维点云处理软件&#xff0c;面对空白的项目界面&#xff0c;最迫切的问题往往是&#xff1a;"我该从哪里获取高质量的训练数据&#xff1f;"这个问题困扰过每一位初学者&#xff0c;…...

OpCore-Simplify:突破性黑苹果EFI配置革命,15分钟完成专业级系统搭建 [特殊字符]

OpCore-Simplify&#xff1a;突破性黑苹果EFI配置革命&#xff0c;15分钟完成专业级系统搭建 &#x1f680; 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify…...

FlowState Lab结合计算机网络概念:模拟智能网络配置助手

FlowState Lab结合计算机网络概念&#xff1a;模拟智能网络配置助手 1. 网络运维的痛点与AI解决方案 网络工程师每天都要面对复杂的网络环境和层出不穷的故障问题。传统排错流程往往需要工程师手动检查设备配置、分析日志信息、查阅技术文档&#xff0c;这个过程耗时耗力且容…...

解决Android 12 NFC功能失效:PendingIntent.FLAG_MUTABLE的正确用法

Android 12 NFC开发实战&#xff1a;PendingIntent可变性标志的深度解析 在移动支付和门禁系统逐渐普及的今天&#xff0c;NFC技术已经成为现代智能手机不可或缺的功能之一。然而&#xff0c;随着Android系统的版本迭代&#xff0c;开发者们不得不面对各种兼容性挑战。特别是在…...

SVN 启动模式详解

SVN 启动模式详解 引言 Subversion(简称SVN)是一个开源的版本控制系统,广泛用于软件项目协作开发中。SVN的启动模式是其基本操作的核心,了解并掌握不同的启动模式对于高效使用SVN至关重要。本文将详细介绍SVN的启动模式,包括基本概念、常用模式及其应用场景。 一、SVN启…...

Blender 3MF插件技术解析与进阶指南:从格式原理到工业级应用

Blender 3MF插件技术解析与进阶指南&#xff1a;从格式原理到工业级应用 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender 3MF插件是连接开源3D创作与工业级3D打印…...

DBNet++的ASF模块真的只是空间注意力吗?深入对比论文与官方代码的三种实现

DBNet的ASF模块&#xff1a;论文与代码的注意力机制差异深度解析 在文本检测领域&#xff0c;DBNet因其出色的性能和实时性成为工业界和学术界的热门选择。其核心创新之一——自适应尺度融合&#xff08;ASF&#xff09;模块&#xff0c;在论文中被描述为空间注意力机制&#x…...