ROS学习--如何结合launch文件使用参数服务器

2023-05-16

ROS(Robot Operating System)接触了将近两年了,最常用的也就是发布话题与订阅话题,前一段时间刚刚把Rviz与/tf搞明白一些,都能够多掌握一些东西,都会特别开心,要想提高自己的能力,必须要经过不断的学习。之前使用别人开源的包的时候,经常会发现在launch文件中使用诸如此类的句子:

<node name="node_name" pkg="foo" type="bar" >
        <param name="camera_topic_private" value="/camera/image_rect">

,在ROS学习中也看到介绍roslaunch在大型项目中的使用技巧(http://wiki.ros.org/cn/ROS/Tutorials/Roslaunch%20tips%20for%20larger%20projects)
说可以直接在launch文件中直接改参数,就没有必要修改程序了,当时看的我是那叫一个激动,这功能好啊,而且还看起来高大上,然而,再往下看下去,就没有然后了,心里一万头草尼玛奔腾有木有啊!你既然说它这么牛逼,那为什么不告诉我,如何才能使用这个牛逼的功能啊!最近要用到这个功能只能自己摸索了,搜了一些参数服务器的知识:
http://wiki.ros.org/roscpp/Overview/Parameter%20Server
然而也并没有介绍如何结合launch使用,于是自己就照葫芦画瓢,自己试着写了一个,然而在launch文件里写参数,程序并没有发生变化。。。
直到,我在网上看到了这个贴子:
http://answers.ros.org/question/43001/setting-parameters-in-a-launch-file-does-not-appear-to-be-working/
才真正解决了我的问题,下面说如何使用,其实非常简单:下面直接给出我的程序:
程序中我是这样写的:

   double parking_x;
   double parking_y;
   ros::param::get("~parking_x",parking_x);
   ros::param::get("~parking_y",parking_y);
   ROS_ERROR("parking_x:%.3f",parking_x);
   ROS_ERROR("parking_y:%.3f",parking_y);

launch文件,我是这样写的:

<launch>
<node pkg="beginner_tutorials" name="talker" type="talker">
<param name="parking_x" type="double" value="100.0" />
<param name="parking_y" type="double" value="600.0" />
</node>
</launch>

我想要在launch文件中更改parking_x与parking_y的值,在程序里只需定义变量parking_x, parking_y,然后再使用语句 ros::param::get(),即可。程序中的“~”的意思在我上边提到的那个贴子中有介绍,表示此参数是私有参数,也就是,在lauch文件中,你把<param.../>写到<node.../>里面那么你的参数就是私有参数。
注意,我的程序中ROS_ERROR()输出的并非真正 的错误,而是为了方便,让信息输出在平面上,并且这样可以不用在launch文件中写“output=screen”,这样,仿照我的这种方式,就可以在launch文件中更改参数,而无须修改程序,参数的类型可以是string,int,double,bool等。
需要注意的是:程序里定义的是double 类型,所以在launch文件中value=”100.0”与value=”600.0”,不能写成 value=”100”与value=”600”,我的QQ是1315080983,欢迎学习ROS与玩机器人的一起交流^_^

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

ROS学习--如何结合launch文件使用参数服务器 的相关文章

随机推荐

  • 想优化ES检索,先了解底层Lucene,Lucene源码结构一览

    Lucene源码结构剖析 前言 有半年没写任何博客了 xff0c 如果不是工作中还是碰到了非常多的挑战 xff0c 我应该不会去花心思研究Lucene源码 xff0c 果然DDL和困难才是第一生产力 xff0c 没错 xff0c 我想写一篇
  • Lucene Query Parser 语法

    lucene的组合条件语法 xff0c 看了网上很多文章 xff0c 真的都太差了 还是官网清晰明了一点 SKIP NAVIGATION LINKS OVERVIEWPACKAGECLASSUSETREEDEPRECATEDHELP PRE
  • 《JAVA并发编程实践JavaConcurrencyinPractice-中文-高清-带书签-完整版(Doug Lea)》

    免责声明 xff1a 全部内容都属于是段友分享 xff0c 我只是属于整理 写在前边 xff0c 个人觉得 弄一个积分下载 xff0c 就是在自掘坟墓 表面上看起来是可以为个人赚积分 xff0c 实际砍掉分享交流的一个途径 对我就是没有积分
  • 《Java核心技术 卷1 基础知识 原书第10版》

    免责声明 xff1a 全部内容都属于是段友分享 xff0c 我只是属于整理 写在前边 xff0c 个人觉得 弄一个积分下载 xff0c 就是在自掘坟墓 表面上看起来是可以为个人赚积分 xff0c 实际砍掉分享交流的一个途径 对我就是没有积分
  • 《高性能mysql第三版》

    免责声明 xff1a 全部内容都属于是段友分享 xff0c 我只是属于整理 写在前边 xff0c 个人觉得 弄一个积分下载 xff0c 就是在自掘坟墓 表面上看起来是可以为个人赚积分 xff0c 实际砍掉分享交流的一个途径 对我就是没有积分
  • idea中maven报错Cannot reconnect

    问题所在 xff1a Maven工程 错误处在pom文件 xff1a 最重要的是学会了怎样在Idea出现错误时 xff0c 发现导致错误的具体原因 xff0c 通过 Helper gt Show Log in Explorer xff0c
  • 用一份JAVA工程师的求职简历来说说求职简历怎么写

    这是一篇我比较想看到的简历指导的文章 但是我比较反对简历造假 我觉得会什么写什么把 可以先看看我的这篇文章 xff1a 刚实习结束 xff0c 就要做面试官 xff0c 谈谈我的想法 自己做过面试官以后 xff0c 自己也总结了一下 xff
  • LiveGBS/LiveNVR等实现安防监控视频Web无插件直播时如何叠加水印文字

    H5直播点播播放器 下载集成入口 xff1a https www liveqing com docs download LivePlayer html 使用说明 xff1a https www liveqing com docs manua
  • OpenMV4开发笔记3-串口通信

    OpenMV4引出了串口3和串口1 xff0c 首先以串口3的收发为例 span class token keyword import span time span class token keyword from span pyb spa
  • FreeRTOS与UCOSIII任务状态对比

    FreeRTOS任务状态 1 运行态 正在运行的任务 xff0c 正在使用处理器的任务 单核处理器中任何时候都有且只有一个任务处于运行态 2 就绪态 已经准备就绪 xff08 非阻塞或挂起 xff09 xff0c 可以立即运行但还没有运行的
  • 白话TCP/IP协议栈

    前言 最近在复习总结计算机基础知识 xff0c 包括操作系统 数据结构 计算机网络等程序员必备的知识 xff0c 这属于程序员的内功 把内功修炼好了 xff0c 外功只是一种形式 xff0c 如果你内功深厚 xff0c 那么无论是用龙抓手还
  • 飞机绕地球问题

    每个飞机只有一个油箱 xff0c 飞机之间可以相互加油 xff08 注意是相互 xff0c 没有加油机 xff09 xff0c 一箱油可以供一架飞机绕地球飞半圈 问 xff1a 为了使至少一架飞机绕地球一圈回到起飞 时候的飞机场 xff0c
  • 【ROS】Gazebo仿真平台安装及问题解决

    Gazebo安装 这里的ROS版本是Melodic xff0c 如果是其他版本的ROS可以修改下面命令的melodic为指定版本 sudo apt get install ros melodic gazebo ros pkgs ros me
  • 激光slam经典开源算法及论文整理

    开源算法 loamLeGO LOAMlio mappingLIO SAMCartographergmappinghector slam 考虑到有些朋友们的网络下载论文可能有问题 xff0c 把论文整理到百度网盘 xff0c 可自行下载 xf
  • Body系下空间平面如何转到World系下

    Body系下空间平面如何转到World系下 题目解法 题目 已知 传感器坐标系 xff08 Body系 xff09 下有一平面P方程为Ax 43 By 43 Cz 43 D 61 0 xff0c 简写为 n
  • cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd 两种解决方法

    centOS8 x86 64 或 aarch64 系统下 yum或dnf 默认安装的 cmake 3 18 2 11 el8版本 xff0c 安装后无法使用 xff0c 出现 xff1a cmake symbol lookup error
  • ROS学习--轻松使用tf

    tf是ROS中建立坐标系 xff0c 并且使用各个坐标间转换关系的一个很好的工具 xff0c 对于非导航专业的同学 xff0c 常常苦恼与各种旋转矩阵的变换 xff0c 自己经常被搞的头大 xff0c 最近由于课题实验的需要 xff0c 尝
  • ROS 下navigation/robot_pose_ekf编译报错

    想要使用navigation下的robot pose ekf做IMU与视觉的融合于是找到了这个包 xff1a https github com ros planning navigation tree indigo devel 但是编译报错
  • 【学习日记】ROS下IMU使用困惑

    最近准备在机器人上测试使用IMU代替机器人的里程计 xff0c 以提高底层的控制周期 由于底层通信的原因 xff0c 使用里程计的话最多能到50HZ xff0c 因为我们的机器人对运动性能要求较高 xff0c 所以无法满足我们的要求 xff
  • ROS学习--如何结合launch文件使用参数服务器

    ROS xff08 Robot Operating System xff09 接触了将近两年了 xff0c 最常用的也就是发布话题与订阅话题 xff0c 前一段时间刚刚把Rviz与 tf搞明白一些 xff0c 都能够多掌握一些东西 xff0