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

【ROS参数服务器增删改c++操作1】

需求:实现参数服务器参数的增删改查操作。

在C++中实现参数服务器数据的增删改查,可以通过两套API实现:.

ros::NodeHandle
ros::param

下面为具体操作演示:
在src下面的自己定义的作用包下面新建文件。
比如我的是一直存在的demo03_ws文件下的src里面,先右击src 创建新的功能包creat catkin package,将包名命名为plumbing_param_server,然后添加roscpp,rospy,std_msgs.创建完成之后。
在plumbing_param_server下面的src新建文件
命名demo01__param_set.cpp

实现:
ros : : NodeHandle
setParam ("键",值)
ros : :param
set("键",值)
修改,只需要继续调研 setparam 或set函数 ,保证键是已经存在的,那么值会覆盖。

输入以下代码:

#include "ros/ros.h"int main(int argc, char** argv){//初始化 ROS节点;ros::init(argc, argv, "set_param_c");// 3.创建节点句柄;ros::NodeHandle nh;
//参数增---------------------------------------
//方案一:nhnh.setParam("type", "xiaohuang");nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("type_param", "xiaobai");ros::param::set("radius_param", 0.15);return 0;
}

编译cmakelist文件。
在这里插入图片描述
在这里插入图片描述

完毕之后ctrl+shift+b进行编译。
然后ctrl+alt+t打开终端
输入roscore启动ros
然后新开一个终端
输入

source ./devel/setup.bash
rosrun plumbing_param_server demo01_param_set 

在这里插入图片描述
验证:新开一个终端,输入rosparam list列出当前存在的所有参数服务器
在这里插入图片描述

获取当前参数的数值:rosparam get /***

比如rosparam get /type
在这里插入图片描述
参数的修改:和上面是一样的。加入下面的代码就可以实现覆盖修改。加入以下函数代码:

//参数改--------------------------------------
//方案一:nh
nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("radius_param", 0.25);

整体:

#include "ros/ros.h"int main(int argc, char** argv){//初始化 ROS节点;ros::init(argc, argv, "set_param_c");// 3.创建节点句柄;ros::NodeHandle nh;
//参数增---------------------------------------
//方案一:nhnh.setParam("type", "xiaohuang");nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("type_param", "xiaobai");ros::param::set("radius_param", 0.15);//参数改--------------------------------------
//方案一:nh
nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("radius_param", 0.25);return 0;
}

下面的修改会覆盖上面的内容
检查一下:ctrl+shift+b进行编译,终端中打开。
获取当前参数的数值:rosparam get /***
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/58657.html

相关文章:

  • elasticsearch 常用数据类型详解和范例
  • 力扣119杨辉三角 II:代码实现 + 方法总结(数学规律法 记忆法/备忘录)
  • 安装pandas遇到No module named ‘_bz2’ 的解决方案
  • 【数据治理-05】什么数据才是货真价实的数据资产,一起聊聊数据资产
  • 第三章 ARM处理器体系结构【嵌入式系统】
  • 最速下降法
  • R语言实践——ggplot2+ggrepel绘制散点+优化注释文本位置
  • [TIFS 2022] FLCert:可证明安全的联邦学习免受中毒攻击
  • css3关键帧动画
  • 在 macOS Mojave 之后的每一个版本中都隐藏着比特币白皮书(Bitcoin Whitepaper)
  • 一文看懂SpringBoot操纵数据库
  • 科普:java与C++的区别
  • 突发!ChatGPT疯了!
  • docker-compose容器编排使用详解+示例
  • 可用的rtsp ,rtmp地址以及使用VLC和ffmpeg 播放视频流
  • Python机器学习:朴素贝叶斯
  • 几个最基本软件的环境变量配置
  • 物业企业如何加快向现代服务业转型
  • java ssm人力资源系统Y3程序
  • leetcode重点题目分类别记录(三)动态规划深入与素数理论
  • 面试篇-学习Java多线程编程必备:深入理解volatile与synchronized
  • 后端系列文章
  • C++之AVL树
  • 【ROS2指南-2】入门 turtlesim 和 rqt
  • Python 进阶指南(编程轻松进阶):四、起个好名字
  • STL容器适配器之<priority_queue>
  • 线程——线程同步
  • 安卓录屏使用VirtualDisplay虚拟屏幕;MediaRecorder,媒体录影机;
  • Java FileChannel文件的读写实例
  • 2023 年男生还推荐报计算机专业吗?