ROS:关于node启动问题

2023-05-16

相关代码:

  <node pkg="turn_on_wheeltec_robot" type="wheeltec_robot_node" name="wheeltec_robot" output="screen" respawn="false">
    <param name="usart_port_name"    type="string" value="/dev/wheeltec_controller"/>  
    <param name="serial_baud_rate"   type="int"    value="115200"/>
    <param name="odom_frame_id"      type="string" value="$(arg odom_frame_id)"/> 
    <param name="robot_frame_id"     type="string" value="base_footprint"/> 
    <param name="gyro_frame_id"      type="string" value="gyro_link"/> 
    <remap if="$(arg smoother)" from="cmd_vel" to="smoother_cmd_vel"/>
  </node>

在turn_on_wheeltec_robot文件夹下有个文件src文件夹里面有个文件叫wheeltec_robot.cpp的文件,其中有一段代码用到了上述的参数:

turn_on_robot::turn_on_robot():Sampling_Time(0),Power_voltage(0)
{

  ros::NodeHandle private_nh("~"); //Create a node handle //创建节点句柄
  //The private_nh.param() entry parameter corresponds to the initial value of the name of the parameter variable on the parameter server
  //private_nh.param()入口参数分别对应:参数服务器上的名称  参数变量名  初始值
  private_nh.param<std::string>("usart_port_name",  usart_port_name,  "/dev/wheeltec_controller"); //Fixed serial port number //固定串口号
  private_nh.param<int>        ("serial_baud_rate", serial_baud_rate, 115200); //Communicate baud rate 115200 to the lower machine //和下位机通信波特率115200
  private_nh.param<std::string>("odom_frame_id",    odom_frame_id,    "odom_combined");      //The odometer topic corresponds to the parent TF coordinate //里程计话题对应父TF坐标
  private_nh.param<std::string>("robot_frame_id",   robot_frame_id,   "base_footprint"); //The odometer topic corresponds to sub-TF coordinates //里程计话题对应子TF坐标
  private_nh.param<std::string>("gyro_frame_id",    gyro_frame_id,    "gyro_link"); //IMU topics correspond to TF coordinates //IMU话题对应TF坐标
}

我当时就在想这个node里的pkg就是某个功能包,好,找到了这个功能包,那么type应该是某个cpp文件或者py文件吧,然后找了很久发现根本没有这个文件,然后查阅了一下资料如下:

<node pkg="包名,就是节点所属的包"

           type="节点类型(与之相同名称的可执行文件)"

           name="节点名称(在 ROS 网络拓扑中节点的名称)"

           args="将参数传递给节点" (可选)

           respawn="true | false如果节点退出,是否自动重启" (可选)

           output="log | screen,日志发送目标,可以设置为 log 日志文件,或 screen 屏幕,默认是 log" (可选)/>

现在我们看一下wheeltec_robot.cpp里面的节点名称是什么吧

int main(int argc, char** argv)
{
  ros::init(argc, argv, "wheeltec_robot"); //ROS initializes and sets the node name //ROS初始化 并设置节点名称 
  turn_on_robot Robot_Control; //Instantiate an object //实例化一个对象
  Robot_Control.Control(); //Loop through data collection and publish the topic //循环执行数据采集和发布话题等操作
  return 0;  
} 

好家伙,该节点名是wheeltec_robot,难道我们在type中就用这名嘛,但是我们用的是wheeltec_robot_node这个名称,这个名称到底在哪里呢。回想一下,type里应该=“是节点类型(与之相同名称的可执行文件)”所以我们要的是文件名,最主要的是去找配置文件了,我们看一下CMakelists.txt文件:

add_executable(wheeltec_robot_node src/wheeltec_robot.cpp src/Quaternion_Solution.cpp)
target_link_libraries(wheeltec_robot_node ${catkin_LIBRARIES})

在这个文件里面终于看到了wheeltec_robot_node这个玩意,并且看到了cpp文件,来解释一下:

这是用src文件夹下的wheeltec_robot.cpp文件生成一个wheeltec_robot_node的可执行文件,cpp文件只是你创建的文件,但是最终映射的文件却是wheeltec_robot_node这个文件,一般而言源文件和生成的可执行文件的名称设置为一样的。

下面的target_link_libraries是将生成的可执行文件和catkin库链接到一起。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS:关于node启动问题 的相关文章

  • js文件分片上传,断点续传

    前言 文件上传是一个老生常谈的话题了 xff0c 在文件相对比较小的情况下 xff0c 可以直接把文件转化为字节流上传到服务器 xff0c 但在文件比较大的情况下 xff0c 用普通的方式进行上传 xff0c 这可不是一个好的办法 xff0
  • JavaScript 大文件分片上传处理

    一 功能性需求与非功能性需求 要求操作便利 xff0c 一次选择多个文件和文件夹进行上传 xff1b 支持PC端全平台操作系统 xff0c Windows Linux Mac 支持文件和文件夹的批量下载 xff0c 断点续传 刷新页面后继续
  • JS实现浏览器端大文件分片上传

    IE的自带下载功能中没有断点续传功能 xff0c 要实现断点续传功能 xff0c 需要用到HTTP协议中鲜为人知的几个响应头和请求头 一 两个必要响应头Accept Ranges ETag 客户端每次提交下载请求时 xff0c 服务端都要添
  • Lua识别Jwt令牌业务

    文章目录 业务场景业务实现lua resty jwt安装令牌识别令牌测试 业务场景 如果想使用Lua识别用户令牌 xff0c 我们需要引入lua resty jwt模块 xff0c 是用于 ngx lua 和 LuaJIT 的 Lua 实现
  • WebSocket从入门到实战

    文章目录 WebSocketWebSocket 介绍WebSocket APIWebSocket 对象WebSocket属性WebSocket事件 xff1a WebSocket方法 xff1a WebSocket 实例客户端服务端代码链接
  • Error:java: 无效的源发行版: 13

    文章目录 问题原因解决 之前是英文的报错 xff0c 也是一样 xff0c 再发一遍 问题 原因 出现这个错误的原因主要是因为 JDK 版本问题 xff0c 有两个原因 xff0c 一个是编译器版本不匹配 xff0c 一个是当前项目 JDK
  • springboot项目中的bootstrap.yml配置不生效(没有自动提示)

    文章目录 问题原因及解决原因1 xff1a 原因2 xff1a 问题 xff08 1 xff09 新创建一个 springboot项目 xff0c 添加了 bootstrap yml 文件 xff0c 发现文件并没有如预期变成绿色叶子 xf
  • 人工智能——分类器性能指标之ROC曲线、AUC值

    文章目录 ROC曲线ROC曲线概念ROC曲线坐标系ROC曲线重要概念案例 xff1a 画ROC曲线 AUC值为什么使用Roc和Auc评价分类器 二分类模型预测的结果是否足够好 xff0c ROC和AUC是重要指标 ROC曲线 ROC曲线概念
  • Ubuntu18.04美化桌面(主题、图标)

    首先 xff0c 安装主题配置工具Tweaks xff0c 命令如下 xff1a sudo apt get install gnome tweak tool 之后在软件菜单中找到Tweaks图标 xff0c 打开该软件 xff0c 界面如下
  • Redis 事务支持回滚吗?

    文章目录 Redis 事务支持回滚吗 xff1f 官方解释DISCARD 命令取消事务 Redis 事务支持回滚吗 xff1f 首选 xff0c Redis 事务不支持回滚 MySQL 在执行事务时 xff0c 会提供回滚机制 xff0c
  • Docker 安装 mysql 8.0.29

    文章目录 安装拉取镜像启动容器 配置 xff08 可跳过 xff0c 建议弄上 xff09 使用启动控制台登录navicat远程登录 删除 安装 拉取镜像 span class token function docker span pull
  • SpringBoot 启动打印 Banner:佛祖保佑,永无BUG!

    最近新学了一招 打印完了 xff0c 一点bug不出 xff0c 果然 xff0c 程序的尽头是玄学 教程 在Resources目录下新建 banner txt 输入内容如下 span class token comment ooOoo s
  • 一文就懂AQS!

    文章目录 AQS介绍AQS概念AQS模式分类AQS核心思想 AQS源码结构CLH同步队列state同步状态独占式同步状态获取与释放流程图总结 xff1a 共享式同步状态获取与释放 看了很多帖子 xff0c 原理说啥的都有 xff0c 算了还
  • 手把手教你构建源码级组件——Java互斥不可重入锁

    文章目录 构造同步组件的步骤1 定义内部类Syn2 继承同步器 xff0c 重写指定方法3 调用同步器方法 互斥不可重入锁实现代码实现测试Demo运行结果结果分析 构造同步组件的步骤 之前的学习中我们学习了AQS的原理 xff0c 其中有许
  • 手把手教你构建源码级组件——Java指定共享线程数目的共享锁

    文章目录 构造同步组件的步骤1 定义内部类Syn2 继承同步器 xff0c 重写指定方法3 调用同步器方法 指定共享线程数目的共享锁实现代码实现测试Demo运行结果结果分析 构造同步组件的步骤 之前的学习中我们学习了AQS的原理 xff0c
  • Anaconda下载及安装保姆级教程(详细图文)

    文章目录 先导知识Anaconda 下载Anaconda 安装Anaconda 配置环境变量测试配置 Anaconda 其他操作安装第三方包卸载第三方包查看环境包信息导入导出环境其他命令 先导知识 Anaconda指的是一个开源的Pytho
  • 解决微信支付申请扫描提示“操作超时,请重新扫码确认问题”

    文章目录 问题原因解决 问题 在申请微信支付账号的时候 xff0c 按照微信网站的提示 操作超时 xff0c 请重新扫码确认 原因 因为浏览器的原因 xff0c 浏览器不兼容 xff0c 醉了 xff0c 这个年代了还有这个兼容的问题 解决
  • npm ERR! cb.apply is not a function npm ERR! A complete log of this run can be found in: npm ERR!

    问题 原因 npm版本过旧 解决 windows下cmd安装指令 xff1a cnpm span class token function install span g span class token function npm span
  • 深度学习从入门到出门(1)——概念与发展概况

    文章目录 深度学习 xff1a 从概念到实践深度学习的起源深度学习的应用场景图像识别自然语言处理推荐系统视频游戏 深度学习的核心思想模型数据优化算法 深度学习的实践方法结论 深度学习 xff1a 从概念到实践 在过去几年里 xff0c 深度
  • ubuntu: su root 报错 su: Authentication failure

    问题 xff1a 输入 sudo su进入root系统 xff0c 输入密码后提示 su Authentication failure 解决方法 xff1a 输入 xff1a sudo passwd root 设置密码 之后重新 sudo

随机推荐

  • 树莓派4b引脚图

  • Ubuntu16.04下安装openssh-server 依赖问题

    1 安装时报依赖错误 因为Ubuntu 自带openssh client xff0c 自带的client和要安装的openssh server 所依赖的client版本不一致导致的 先卸载openssh client 然后在安装即可 sud
  • 《智能控制技术》学习笔记-1.绪论,智能控制定义、分类、发展及应用场景

    一 引言 先修内容 xff1a 经典控制理论 现代控制理论 MATLAB 引入 xff1a 智能理论是新兴学科 xff0c 随着数字计算机和人工智能发展而来 xff0c 发展得益于许多学科 xff1a 人工智能 认知科学 现代自适应控制 最
  • 【STM32】基础篇 ST-Link下载器接线方式和SWD,JTAG协议简介

    在开发STM32等基于arm内核的单片机时 xff0c 选择一款载调试器必不可少 市面上有各式各样的下载调试器可供我们选择 xff0c 常用的下载器包括J Link xff0c ST Link xff0c J Link0B xff0c CM
  • 【Linux学习】正点原子裸机篇 C语言LED实验实现

    上一篇使用汇编语言编写LED等驱动实验 xff0c 在实际工作中较少使用汇编编写嵌入式驱动 xff0c 毕竟汇编过于底层 xff0c 难度较大 绝大部分情况下都是使用C语言编写主体程序 xff0c 只是开始部分使用汇编来初始化C语言环境 x
  • Nginx

    1 基本介绍 Nginx是由俄罗斯的设计师开发的 Nginx不像Apache那样 xff0c 不论功能是否常用 xff0c 统统都给你 自带了 xff0c 虽然功能 很强大 xff0c 但是也很消耗性能 xff0c 而Nginx只是自带了常
  • linux运维经典面试题总结

    1 Linux常见的日志文件都有哪些 xff0c 各自的用途 xff1f 日志轮询配置文件在哪里 xff1f 欢迎界面配置文件在哪里 xff1f 答 xff1a var log messages 内核及公共消息日志 var log cron
  • openair-cn-cups

    Github openair cn cups openair cn cups descriptions openair cn cups是在openair cn的基础上将spgw控制面与用户面分离 xff0c 实现从LTE EPC向5G Co
  • 5GS NAS SM Elementary Procedures(EP) -- General

    参考 xff1a clause 6 2 3GPP TS24 501 1 Procedure Transaction Identifier PTI PTI procedure transaction identifier用来指示message
  • keil5(MDK)美化文本编辑区

    1 常规的改法 xff1a 在MDK菜单栏中选择 编辑 gt 配置 gt Color amp Fonts xff0c 如下界面 xff1a 可以在以上界面配置对应的选项更改代码编辑区数字 xff08 number xff09 关键字 xff
  • oai-5gcn-smf prototype testbed

    Deployment Scenario Repository Of SMF git clone https gitlab eurecom fr oai oai cn5g smf git SMF gt build amp run cd oai
  • OAI LTE系统搭建 -- OAI EPC

    OAI EPC搭建 1 系统环境 xff1a Ubuntu 16 04 2 基础软件安装 xff1a vim git ssh server sudo apt get install vim sudo apt get install git
  • OAI LTE系统搭建 -- OAI eNB

    OAI eNB 搭建 接着OAI EPC搭建教程 1 下载源代码 1 1 加载gitlab eurecom fr证书 echo n openssl s client showcerts connect gitlab eurecom fr 4
  • 端到端5G核心网测试方式

    1 系统搭建 2 网元功能运行 2 1 运行顺序 xff1a UDM Server SMF AMF UPF VPP UPF N4 Huawei CPE配置保存 gNB 2 2 UDM Server运行方式 密码123 1 可执行文件位置 s
  • 无线通信知识回顾(2) - 《5G移动通信系统设计与标准详解》

    Reference 5G移动通信系统设计与标准详解 王映民等 第10章 功率控制 10 1 概述 功率控制对基站或者终端发送信号功率进行调节 xff0c 达到有效地实现路径损耗补偿 克服阴影衰落 抑制干扰等目的 xff1b 如果单纯提高信号
  • python讲解from ctypes import *调用C语言动态链接库

    文章目录 前言一 from ctypes import 二 调用举例1 代码 前言 顾名思义 一 from ctypes import 在写python程序时 有时会用到C语言库函数 Python 的 ctypes 要使用 C 函数 xff
  • Docker随笔,从基础到入门

    实验环境 xff1a centos7 7 防火墙和selinux提前关闭 一 Docker基本概念 Docker系统有两个程序 xff1a docker服务端和docker客户端 docker服务端是一个服务进程 xff0c 管理着所有的容
  • cuda、torch、torchvision对应版本以及安装

    查找torch与torchvision对应版本 匹配情况如下 xff1a 1 在线下载 xff1a 在pytorch官网选择相应的历史版本 xff0c 使用conda或者pip安装 xff0c 使用官网的镜像下载很慢 xff0c 建议使用其
  • CUDA在VS下编程出现MSB3721错误

    CUDA在VS下编程出现MSB3721错误 一 错误示范二 解决方式 一 错误示范 我们在VS环境下进行CUDA编程的时候可能会出现如下MSB1721的错误 二 解决方式 首先确保好是在x64平台下运行 xff1a 确定无误然后如果还有问题
  • ROS:关于node启动问题

    相关代码 xff1a lt node pkg 61 34 turn on wheeltec robot 34 type 61 34 wheeltec robot node 34 name 61 34 wheeltec robot 34 ou