当前位置: 首页 > 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 
http://www.lryc.cn/news/193921.html

相关文章:

  • 机器视觉在自动驾驶汽车中的应用与挑战
  • 欠拟合、过拟合及优化:岭回归
  • Mybatis学习笔记注解/xml映射/动态SQL%%%Mybatis教程
  • Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用
  • 使用OpenSSL生成自签证书
  • Spring源码解析——Spring事务是怎么通过AOP实现的?
  • 机器人革命:脑洞大开的前沿机器人技术!
  • 微信小程序动态海报
  • 手写单例模式
  • 介绍6种解决电脑找不到vcomp140.dll,无法继续执行代码的方法。
  • mysql数据物理迁移
  • 构建图像金字塔:探索 OpenCV 的尺度变换技术
  • ios app开发环境搭建
  • mysql面试题45:读写分离常见方案、哪些中间件可以实现读写分离
  • 【数字IC设计】DC自动添加门控时钟
  • 前端开发工具vscode
  • 网络基础2(1)
  • 系统文件IO、文件描述符fd、重定向、文件系统、动态库和静态库
  • 一、K8S第一步搭建
  • pwnable-1-fd
  • 队列的实现(c语言)
  • 雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆
  • 基于Linux上MySQL8.*版本的安装-参考官网
  • git 项目管理操作
  • 数据结构--》掌握数据结构中的排序算法
  • Kubernetes实战(三)-k8s节点设置cpu高于多少就不调度
  • 数学建模——平稳时间序列分析方法
  • Vuex使用方式及异步问题处理
  • 【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?
  • LocalDateTime与时间戳