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

ROS-6.参数的使用

参数的使用

  • 参数服务结构
  • 命令行的使用方式
    • 运行小海龟
    • 命令介绍
    • 查看参数
    • 获取参数值
    • 设置参数
    • 保存参数到文件
    • 从文件导入参数
  • 通过程序操作
    • 创建节点
    • 修改cmake
    • 编译
    • 运行

参数服务结构

在这里插入图片描述
ros中存在参数服务管理服务,管理这所有参数,所有节点剋订阅和发布这些节点

命令行的使用方式

运行小海龟

roscore
rosrun turtlesim turtlesim_node 

命令介绍

命令功能
rosparam get获取参数
rosparam load从文件加载参数
rosparam dump保存参数到文件
rosparam delete删除一个参数
rosparam list列举所有参数

查看参数

rosparam list	

输出如下,参数

/rosdistro
/roslaunch/uris/host_wxf_virtual_machine__44045
/rosversion
/run_id
/turtlesim/background_b
/turtlesim/background_g
/turtlesim/background_r

获取参数值

rosparam get /turtlesim/background_b

输出为背景颜色B通道的值为255

设置参数

rosparam set /turtlesim/background_b 100

重新获取参数,就是修改后的值,这时已经设置生成,但是仿真器还未生效,我们需要执行以下命令,

rosservice call /clear "{}"

这时候仿真器终端背景颜色就会生效

保存参数到文件

rosparam dump param.yaml

从文件导入参数

当对配置文件修改后,可以从配置文件导入参数

rosparam load param.yaml

通过程序操作

创建节点

cd catkin_ws/src
catkin_create_pkg learning_parameter roscpp rospy std_srvs
#include <ros/ros.h>
#include <std_srvs/Empty.h>int main(int argc, char **argv)
{int red;int green;int blue;ros::init(argc, argv, "Parameter_config");ros::NodeHandle node;// 获取背景颜色ros::param::get("/turtlesim/background_r", red);ros::param::get("/turtlesim/background_g", green);ros::param::get("/turtlesim/background_b", blue);ROS_INFO("get background color[%d, %d, %d]", red, green, blue);// 设置背景颜色ros::param::set("/turtlesim/background_r", 255);ros::param::set("/turtlesim/background_g", 255);ros::param::set("/turtlesim/background_b", 255);ROS_INFO("get background color[255, 255, 255]");// 重新获取背景颜色ros::param::get("/turtlesim/background_r", red);ros::param::get("/turtlesim/background_g", green);ros::param::get("/turtlesim/background_b", blue);ROS_INFO("get background color[%d, %d, %d]", red, green, blue);// 调用服务,刷新背景颜色ros::service::waitForService("/clear");ros::ServiceClient clear_background = node.serviceClient<std_srvs::Empty>("/clear");std_srvs::Empty srv;clear_background.call(srv);sleep(1);return 0;
}

修改cmake

catkin_ws/src/learning_parameter/CMakeLists.txt

添加如下内容

add_executable(parameter_config src/parameter_config.cpp)
target_link_libraries(parameter_config${catkin_LIBRARIES}
)

编译

cd catkin_ws
catkin_make

运行

source devel/setup.sh
roscore
rosrun turtlesim turtlesim_node 
rosrun learning_parameter parameter_config 

相关文章:

ROS-6.参数的使用

参数的使用 参数服务结构命令行的使用方式运行小海龟命令介绍查看参数获取参数值设置参数保存参数到文件从文件导入参数 通过程序操作创建节点修改cmake编译运行 参数服务结构 ros中存在参数服务管理服务&#xff0c;管理这所有参数&#xff0c;所有节点剋订阅和发布这些节点 …...

机器视觉在自动驾驶汽车中的应用与挑战

机器视觉在自动驾驶汽车中扮演着至关重要的角色&#xff0c;它使车辆能够感知和理解周围环境&#xff0c;以便自主驾驶。以下是机器视觉在自动驾驶汽车中的应用以及相关挑战&#xff1a; 应用&#xff1a; 障碍物检测与避让&#xff1a; 机器视觉系统可以检测和识别路上的障碍…...

欠拟合、过拟合及优化:岭回归

问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢? 当算法在某个数据集当中出现这种情况,可能就出现了过拟合现象。 1、 什么是过拟合与欠拟合 欠拟合 过拟合 分析 第一种情况:因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅…...

Mybatis学习笔记注解/xml映射/动态SQL%%%Mybatis教程

介绍 Mybatis 是一款优秀的持久层框架&#xff0c;用于简化 JDBC 的开发 MyBatis中文网 Mybatis 入门 快速入门 步骤 创建 SpringBoot 工程、数据库表 user、实体类 User引入 Mybatis 相关依赖&#xff0c;配置 Mybatis&#xff08;数据库连接信息&#xff09;编写 SQL 语…...

Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用

Git 文章目录 Git项目简单克隆通用操作添加和提交回滚分支变基分支优选 远程项目推送认证抓取、拉取和冲突解决 IEDA类软件连接 最近学原理学的快头秃了&#xff0c;特此想出点不讲原理的纯操作版&#xff0c;不过还是放个图吧 项目简单克隆 git在本人日常中最重要的功能还是…...

使用OpenSSL生成自签证书

什么是OpenSSL OpenSSL是一个开源的软件库和工具套件&#xff0c;用于安全地处理网络数据传输中的加密、解密、安全套接层&#xff08;SSL&#xff09;以及传输层安全&#xff08;TLS&#xff09;协议等功能。它广泛应用于网站和互联网服务中&#xff0c;以确保数据传输的安全…...

Spring源码解析——Spring事务是怎么通过AOP实现的?

正文 此篇文章需要有SpringAOP基础&#xff0c;知道AOP底层原理可以更好的理解Spring的事务处理。最全面的Java面试网站 自定义标签 对于Spring中事务功能的代码分析&#xff0c;我们首先从配置文件开始人手&#xff0c;在配置文件中有这样一个配置&#xff1a;<tx:annot…...

机器人革命:脑洞大开的前沿机器人技术!

原创 | 文 BFT机器人 01 由生物启发的多模式移动形态机器人 在一个不断运动的世界中&#xff0c;一种新开发的名为M4&#xff08;多模式移动形态机器人&#xff09;的机器人展示了在包括滚动、飞行和行走在内的八种不同运动模式之间切换的能力。这款机器人由加州理工学院自主…...

微信小程序动态海报

参考文献&#xff1a; 微信小程序生成分享海报&#xff08;附带二维码生成&#xff09; - 简书 需求背景&#xff1a; 微信小程序固定图片&#xff0c;无法自动链接&#xff0c;分享页面内容 解决方案&#xff1a; 拆分海报内容&#xff0c;由以下几个组成 1、用户图像 …...

手写单例模式

一、单例模式的定义 定义&#xff1a; 确保一个类只有一个实例&#xff0c;并提供该实例的全局访问点。 这样做的好处是&#xff1a;有些实例&#xff0c;全局只需要一个就够了&#xff0c;使用单例模式就可以避免一个全局使用的类&#xff0c;频繁的创建与销毁&#xff0c;耗…...

介绍6种解决电脑找不到vcomp140.dll,无法继续执行代码的方法。

在编程和软件开发领域&#xff0c;我们经常会遇到各种错误和问题。其中&#xff0c;找不到vcomp140.dll文件导致无法继续执行代码是一个非常常见的问题。这个问题可能会影响到软件的正常运行&#xff0c;甚至导致整个项目延期。因此&#xff0c;我们需要找到解决方案来解决这个…...

mysql数据物理迁移

文章目录 一、mysql数据物理迁移1.1 物理迁移 一、mysql数据物理迁移 1.1 物理迁移 速度快&#xff0c;需要停机 进入数据库&#xff0c;查看数据存放位置&#xff1a; select datadir; 一般默认存放在/var/lib/mysql 停机数据库&#xff0c;防止有写入数据 systemctl stop …...

构建图像金字塔:探索 OpenCV 的尺度变换技术

构建图像金字塔&#xff1a;探索 OpenCV 的尺度变换技术 引言什么是图像金字塔&#xff1f;为什么需要图像金字塔&#xff1f;构建高斯金字塔构建拉普拉斯金字塔图像金字塔的应用示例&#xff1a;在不同尺度下检测图像中的边缘 结论 引言 在计算机视觉领域&#xff0c;图像金字…...

ios app开发环境搭建

Xcode是Apple iOS的应用市场app store移动应用的开发工具&#xff0c;支持不同设备、不同应用场景的开发&#xff0c;本文主要描述xcode开发工具开发环境的搭建。 如上所示&#xff0c;在macos中&#xff0c;使用app store安装xcode开发工具 如上所示&#xff0c;在macos中&…...

mysql面试题45:读写分离常见方案、哪些中间件可以实现读写分离

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说你知道的读写分离常见方案 读写分离是一种常见的数据库架构方案,旨在分担数据库的读写压力,提高系统的性能和可扩展性。以下是两种常见的…...

【数字IC设计】DC自动添加门控时钟

简介 数字电路的动态功耗主要是由于寄存器翻转带来的&#xff0c;为了降低芯片内部功耗&#xff0c;门控时钟的方案应运而生。作为低功耗设计的一种方法&#xff0c;门控时钟是指在数据无效时将寄存器的时钟关闭&#xff0c;以此来降低动态功耗。 在下图中&#xff0c;展示了…...

前端开发工具vscode

一、下载安装 https://code.visualstudio.com/ 二、安装插件 三、使用 ①、创建一个空目录 ②、利用vscode工具打开该目录 ③、将该目录设置为工作区 在工作区中添加文件&#xff0c;还可以进行浏览器访问&#xff08;提前安装了Live Server插件&#xff09; 为工具…...

网络基础2(1)

HTTP 1.应用层协议2.send和recv单独使用不安全3.URL4.urlencode和urldecode5.HTTP协议格式6.HTTP中的常见请求方法POST&&GET7.HTTP的状态码8.HTTP常见Header &#x1f31f;&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f6…...

系统文件IO、文件描述符fd、重定向、文件系统、动态库和静态库

目录 C文件接口系统文件I/O系统调用和库函数文件描述符0 & 1 & 2FILE和fd的关系文件描述符的分配规则 重定向重定向的本质输出重定向输入重定向追加重定向 dup2函数 FILE理解文件系统了解磁盘的物理结构逻辑抽象文件系统文件系统的图解和解析通过文件系统来理解ls -al通…...

一、K8S第一步搭建

一、初始化操作 1.1、关闭防火墙 systemctl stop firewalld systemctl disable firewalld关闭交换空间 swapoff -a # 临时 sed -ri s/.*swap.*/#&/ /etc/fstab # 永久重启才能生效 根据规划设置主机名 hostnamectl set-hostname <hostname>映射主机 cat >>…...

pwnable-1-fd

pwn的学习周期确实比较长&#xff0c;需要的前置内容也很多&#xff0c;了解到第一题还算比较简单的&#xff0c;那就先来体验一波~顺带附一波网站链接:&#x1f449;网站链接 题目 WP 最后一行给出了ssh链接方式&#xff0c;那就先连接一波 第一次连接会有第四行的询问&…...

队列的实现(c语言)

队列也是线性表&#xff0c;也是分为两种的&#xff1a;1、顺序队列 2、链队列 顺序队列 #include <stdio.h> #include <stdlib.h>typedef struct {char *base;int front;int erer;int size; }SqQueue;void initSqQueue(SqQueue *queue,int size){queue->base…...

雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆

上篇通过hook确定了登录代码的位置&#xff0c;参考雷电模拟器上使用第一个frida&#xff08;四&#xff09;第一个HOOK之抓包-CSDN博客 接下来逆向分析一下&#xff0c;并用python实现其功能&#xff0c;并模拟登陆。...

基于Linux上MySQL8.*版本的安装-参考官网

本地hadoop环境安装好,并安装好mysql mysql下载地址及选择包 MySQL :: Download MyS的QL Community Server (Archived Versions) mysql安装步骤 下载与上传解压给权限 #mysql安装包上传到/opt下 cd /usr/local/ #解压到此目录 tar -xvf /opt/mysql-8.0.33-linux-glibc2.12-…...

git 项目管理操作

git stash: 保存当前工作进度 git stash save message... : 添加一些注释。 git stash pop : 恢复最新的进度到工作区 git remote prune origin&#xff1a;将本地分支与已删除的远程分支同步 git branch -d <branch-name> &#xff1a;删除分支 git branch -D <branc…...

数据结构--》掌握数据结构中的排序算法

当我们面对海量数据时&#xff0c;如何高效地将其排序是数据结构领域中一个重要的问题。排序算法作为其中的关键部分&#xff0c;扮演着至关重要的角色。 无论你是初学者还是进阶者&#xff0c;本文将为你提供简单易懂、实用可行的知识点&#xff0c;帮助你更好地掌握排序算法在…...

Kubernetes实战(三)-k8s节点设置cpu高于多少就不调度

1 k8s节点设置的概念和原理 k8s是Google开源的容器集群管理系统&#xff0c;用于自动化部署、扩展和管理容器化应用程序。在k8s中&#xff0c;Node是指容器运行的物理或虚拟机器。Node可以是一个物理机或一个虚拟机器&#xff0c;k8s通过其调度器将Pod调度到每个Node上。对于一…...

数学建模——平稳时间序列分析方法

目录 1、平稳性的Daniel检验 &#xff08;1&#xff09;Spearman相关系数假设检验 &#xff08;2&#xff09;时间序列平稳性的Danniel假设检验 案例 【模型分析】 1、原始数据at的平稳性检验 2、一阶差分序列的平稳性检验 3、二阶差分序列的平稳性检验 4、建立AR&#…...

Vuex使用方式及异步问题处理

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 生活的理想&#xff0c;为了不断更新自己 ! 目录 1.Vuex简介&#xff1a; 2.vuex获取值 2.1安装 2.2.菜单栏 2.3.模块 2.4使用 3.改…...

【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说下你的vue项目的目录结…...