ROS : 参数服务器之动态调参(dynamic_reconfigure)

2023-05-16

另外参考链接:

ROS动态参数配置:dynparam命令行工具的使用(示例+代码)_肥肥胖胖是太阳的博客-CSDN博客

参数服务器实现的功能:修改参数后,不需要重新编译,节点启动时生效;

动态调参实现的功能:修改参数后,不需要重新编译,无需重新启动节点;

这个一元堆栈包含dynamic_reconfigure包,它提供了一种方法,可以在任何时候更改节点参数,而无需重新启动节点。

目前,dynamic_reconfigure的重点是提供一种标准方法,将节点参数的子集公开给外部重新配置。客户机程序,例如GUIs,可以查询节点的可重构参数集,包括它们的名称、类型和范围,并向用户提供定制的接口。这对于硬件驱动程序特别有用,但具有更广泛的适用性。

源代码:

(branch: master)

git https://github.com/ros/dynamic_reconfigure.git 

第一部分:动态调参的应用

1.dynparam命令行工具

dynparam工具支持节点的命令行重新配置,以及将它们的配置加载和转储到文件中。要运行dynparam,输入:

$

rosrun dynamic_reconfigure dynparam COMMAND

当前支持的命令是:

    dynparam list : list configurable nodes
    dynparam get : get node configuration
    dynparam set : configure node
    dynparam set_from_parameters : copy configuration from parameter server
    dynparam dump : dump configuration to file
    dynparam load : load configuration from file

具体指令如下

1.罗列所有可以动态调参的节点

$

rosrun dynamic_reconfigure dynparam list

范例:

    ​firefly@firefly:~$ rosrun dynamic_reconfigure dynparam list
    /amcl
    /move_base
    /move_base/TrajectoryPlannerROS
    /move_base/global_costmap
    /move_base/global_costmap/inflation_layer
    /move_base/global_costmap/obstacle_layer
    /move_base/local_costmap
    /move_base/local_costmap/inflation_layer
    /move_base/local_costmap/obstacle_layer
    /velocity_smoother

2.获取一个可以动态调参的节点的动态参数配置

$

rosrun dynamic_reconfigure dynparam get /node

范例:
   

firefly@firefly:~$ rosrun dynamic_reconfigure dynparam get /move_base/local_costmap/inflation_layer
    {'inflate_unknown': False, 'cost_scaling_factor': 20.0, 'inflation_radius': 0.28, 'enabled': True, 'groups': {'cost_scaling_factor': 20.0, 'parent': 0, 'inflation_radius': 0.28, 'groups': {}, 'id': 0, 'name': 'Default', 'parameters': {}, 'enabled': True, 'state': True, 'inflate_unknown': False, 'type': ''}}

    firefly@firefly:~$ rosrun dynamic_reconfigure dynparam get /move_base/TrajectoryPlannerROS
    {'max_vel_theta': 1.0, 'vtheta_samples': 20, 'min_vel_x': 0.0, 'heading_lookahead': 0.325, 'restore_defaults': False, 'heading_scoring': False, 'min_vel_theta': -1.0, 'angular_sim_granularity': 0.025, 'holonomic_robot': False, 'acc_lim_x': 0.2, 'acc_lim_y': 0.0, 'heading_scoring_timestep': 0.8, 'dwa': True, 'oscillation_reset_dist': 0.1, 'escape_vel': -0.1, 'sim_time': 2.5, 'y_vels': '-0.3,-0.1,0.1,-0.3', 'simple_attractor': False, 'acc_lim_theta': 1.8, 'min_in_place_vel_theta': 0.05, 'gdist_scale': 0.3, 'groups': {'max_vel_theta': 1.0, 'simple_attractor': False, 'y_vels': '-0.3,-0.1,0.1,-0.3', 'parent': 0, 'acc_lim_theta': 1.8, 'min_in_place_vel_theta': 0.05, 'dwa': True, 'vtheta_samples': 20, 'min_vel_theta': -1.0, 'heading_lookahead': 0.325, 'gdist_scale': 0.3, 'groups': {}, 'heading_scoring': False, 'min_vel_x': 0.0, 'id': 0, 'angular_sim_granularity': 0.025, 'holonomic_robot': False, 'name': 'Default', 'parameters': {}, 'acc_lim_x': 0.2, 'acc_lim_y': 0.0, 'escape_reset_theta': 1.57079632679, 'restore_defaults': False, 'occdist_scale': 0.8, 'vx_samples': 8, 'heading_scoring_timestep': 0.8, 'state': True, 'sim_time': 2.5, 'pdist_scale': 0.8, 'max_vel_x': 0.2, 'sim_granularity': 0.025, 'type': '', 'escape_reset_dist': 0.1, 'oscillation_reset_dist': 0.1, 'escape_vel': -0.1}, 'escape_reset_theta': 1.57079632679, 'occdist_scale': 0.8, 'vx_samples': 8, 'pdist_scale': 0.8, 'max_vel_x': 0.2, 'sim_granularity': 0.025, 'escape_reset_dist': 0.1}

3.给一个节点的动态参数赋值value

    单个参数

$

rosrun dynamic_reconfigure dynparam set /node parameter_name value

 or多个参数(set node_name yaml_dictionary)

$

rosrun dynamic_reconfigure dynparam set wge100_camera "{'camera_url':'foo', 'brightness':58}"

范例:

rosrun dynamic_reconfigure dynparam set /move_base/local_costmap/inflation_layer  inflation_radius 0.01

4.从参数服务器加载数据

rosrun dynamic_reconfigure dynparam set_from_parameters /node

5.将动态参数配置存到yaml配置文件中

rosrun dynamic_reconfigure dynparam set_from_parameters /node

6.从yaml配置文件中加载配置动态参数

$

rosrun dynamic_reconfigure dynparam load /node dump.yaml

第二部分:动态参数服务的建立


2.在C++程序中应用dynamic_reconfigure

    安装dynamic_reconfigure软件包

sudo apt-get install -y ros-kinetic-dynamic-reconfigure

    在参数服务器中添加参数

    使用dynamic_reconfigure动态调节节点参数

 

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

ROS : 参数服务器之动态调参(dynamic_reconfigure) 的相关文章

  • git强制覆盖本地代码

    git强制覆盖本地 xff1a git fetch all 拉取所有更新 git reset hard origin master 本地代码同步线上最新版本 会覆盖本地所有与远程仓库上同名的文件 git pull git强制覆盖本地命令 x
  • 【毕业设计】基于STM32及OpenMV的云台追踪装置

    目录 修改记录1 摘 要2 整体功能分析3 硬件选型3 1 OpenMV4 Cam H73 2 STM32F103ZET63 3 DS3120舵机3 4 LED补光板3 5 供电及稳压3 6 硬件连接 4 软件功能实现4 1 OpenMV部
  • firewall-cmd 使用总结

    firewalld的简要说明 firewalld firewall cmd firewall offline cmd它们Python脚本 xff0c 通过定义的在 usr lib firewalld下面的xml配置信息 xff0c 在启动时
  • 机架与机柜

    随着计算机网络的发展 xff0c 数据中心的服务器以及网络通信设备等IT设施 xff0c 正逐步向着网络化 机架化的方向发展 机架是用于综合布线 xff0c 安装配线架和理线架 xff0c 实现对电缆和光缆布线系统的管理 在网络机柜中不具备
  • cmake和makefile区别和cmake指定编译器(cmake -G)

    一 cmake和makefile区别 要说明区别 xff0c 我们先要区分下面三类工具 xff1a 1 项目构建生成工具 首先cmake是项目构建生成工具 xff0c cmake的代码可以与平台系统和编译器无关 类似cmake的工具还有au
  • Gazebo使用过程中的问题

    1 运行命令gazebo没有反应 在虚拟机安装好gazebo后 xff0c 使用ALT 43 F2打开命令行运行命令gazebo没有反应 首先尝试内存不够的情况 xff0c 给虚拟机加到了4g内存 没有用 xff0c 运行gazebo还是没
  • 一张图理解板卡硬件调试流程

    最近在调试从焊板厂打样回来的板卡 xff0c 简单总结了下板卡的硬件测试流程 xff0c 如下图 xff1a 写在后面的话 xff1a 我之所以选择做技术这一行 xff0c 是觉得做技术的人简单 直接 xff0c 当你面对一个技术问题 xf
  • 关于Linux进程你所需要知道的一切都在这里!!

    文章目录 进程简单了解进程查看进程进程ID父进程ID父进程与子进程 程序与进程程序进程程序变成进程总结 进程状态进程状态转换启动新进程system fork exce系列函数 终止进程等待进程wait waitpid 进程 说明 xff1a
  • MQTT协议简介及协议原理

    文章目录 MQTT协议MQTT协议简介MQTT通信模型MQTT客户端的功能 xff1a MQTT客户服务器功能 xff1a 消息主题与服务质量MQTT控制报文固定报头可变报头CONNECT报文CONNACK报文 有效载荷 MQTT协议 MQ
  • 你不得不看的图文并茂的MQTT协议通信过程!!!

    文章目录 MQTT连接服务器MQTT订阅主题MQTT发布消息服务质量等级 QoSQoS0的PUBLISH控制报文QoS1的PUBLISH控制报文QoS2的PUBLISH控制报文 取消订阅断开连接 MQTT连接服务器 客户端到服务器的网络连接
  • 一个高性能、高稳定性的跨平台MQTT客户端——mqttclient简介与使用

    文章目录 mqttclient简介与使用优势 xff1a 在线代码生成工具占用资源大小整体框架支持的平台版本问题版权和许可linux平台下测试使用安装cmake xff1a 测试程序编译 amp 运行编译成动态库libmqttclient
  • 一个高性能、高稳定性的跨平台MQTT客户端——mqttclient代码生产工具介绍

    文章目录 mqttclient代码生产工具介绍连接参数配置订阅主题相关的代码配置发布消息相关的代码配置生成代码 mqttclient代码生产工具介绍 mqttclient代码生产工具主要是用于配置MQTT的参数 xff0c 并且生成相应的代
  • 一个高性能、高稳定性的跨平台MQTT客户端——mqttclient配置及裁剪工具

    文章目录 mqttclient配置及裁剪工具salof相关的配置使用mqttclient裁剪配置工具 mqttclient配置及裁剪工具 MQTT TOPIC LEN MAX 配置客户端支持最大的主题名长度 xff0c 主题是支持通配符的
  • 一个高性能、高稳定性的跨平台MQTT客户端——mqttclient设计与实现方式

    文章目录 mqttclient设计与实现方式设计思想API接口MQTT客户端的核心结构mqttclient实现申请一个mqtt客户端释放已申请的mqtt客户端设置MQTT客户端的信息连接服务器订阅报文取消订阅发布报文内部线程核心的处理函数发
  • mqtt连接百度天工物接入平台

    文章目录 mqtt连接到百度天工物接入百度天工物接入简介使用百度天工物接入创建项目创建策略创建身份创建用户测试连接 MQTT软件测试连接手动安装相关的依赖包拉取mqttclient仓库简单介绍mqttclient仓库文件夹编译运行测试代码使
  • mqttclient连接到OneNET云平台

    文章目录 mqttclient连接到OneNET云平台使用OneNET测试连接手动安装相关的依赖包拉取mqttclient仓库简单介绍mqttclient仓库文件夹编译运行代码使用到的API mqttclient连接到OneNET云平台 有
  • 2022年最新《谷粒学院开发教程》:1 - 构建工程篇

    资料资料资料地址代码地址 后台管理系统目录前台展示系统目录1 构建工程篇7 渲染前台篇2 前后交互篇8 前台登录篇3 文件上传篇9 前台课程篇4 课程管理篇10 前台支付篇5 章节管理篇11 统计分析篇6 微服务治理12 项目完结篇 目录
  • MQTT移植到stm32开发板——使用RT-Thread操作系统

    文章目录 mqttclientENV介绍env工具下载安装通过env移植MQTT客户端打开 env 控制台打开env并更新软件包列表移植MQTT客户端 编写自己的代码 xff1a 连接参数配置订阅主题相关的代码配置发布消息相关的代码配置生成
  • MQTT移植到stm32开发板——使用TencentOS tiny操作系统

    mqttclient 一个高性能 高稳定性的跨平台MQTT客户端 一个高性能 高稳定性的跨平台MQTT客户端 xff0c 基于socket API之上开发 xff0c 可以在嵌入式设备 xff08 FreeRTOS LiteOS RT Th
  • MQTT移植到stm32开发板——使用FreeRTOS操作系统

    mqttclient 一个高性能 高稳定性的跨平台MQTT客户端 一个高性能 高稳定性的跨平台MQTT客户端 xff0c 基于socket API之上开发 xff0c 可以在嵌入式设备 xff08 FreeRTOS LiteOS RT Th

随机推荐

  • 深入了解C++多态的原理及实现方式

    文章目录 前言关于多态函数承载方式虚函数方式 前言 需要深入了解C C 43 43 语言的基础之上再看此文章 关于多态 具有多种形态 xff0c 调用同一个方法会随上下文不同而产生不同的结果 xff0c 多态有静态多态与动态多态两种 函数承
  • select、poll、epoll的原理与区别

    文章目录 前言同步I O异步I O阻塞I O非阻塞I O多路复用I Oselectselect整个处理过程如下select函数原型 xff1a select的缺点 pollepollepoll的原理epoll的操作模式epoll的函数epo
  • MQTT连接到阿里云物联

    连接到阿里云物联 既然懂得专门连接百度天工物接入 xff0c 那么连接阿里云物联其实也是一样的 xff0c 因为都是基于MQTT协议进行通信的 xff0c 首先打开阿里云物联 xff1a https iot console aliyun c
  • Ubuntu20 安装微信

    1 安装deepin wine span class token function git span clone span class token string 34 https gitee com wszqkzqk deepin wine
  • 如果让你设计哈希表.....

    先确定选题 xff0c 待写
  • STM32进阶之串口环形缓冲区实现

    如需转载请说明出处 xff1a STM32进阶之串口环形缓冲区实现 队列的概念 在此之前 xff0c 我们来回顾一下队列的基本概念 xff1a 队列 Queue xff1a 是一种先进先出 First In First Out 简称 FIF
  • 在ROS中实现基于darknet_ros的目标检测

    最近用自己的渣渣笔记本电脑跑了一下yolo目标检测在ROS中的实现 xff0c 实现了用摄像头进行目标检测的任务 以下为笔记 xff0c 防止遗忘 1 使用的环境和平台 Ubuntu 16 04 LTS 43 ROS 43 Yolo 2 实
  • 01 FreeRTOS任务实例

    FreeRTOS任务实例 一 简要说明1 官方例程下载 二 学习任务的创建1 创建一个任务2 任务中传递参数3 不同优先级的任务 三 任务的延时1 使用阻塞式延时2 精确的任务定时3 低优先级任务无延时 xff0c 高优先级延时 一 简要说
  • opencv 读取相机图像+ros发布图像

    usr bin python2 coding 61 utf 8 import cv2 import numpy as np from std msgs msg import Header from sensor msgs msg impor
  • 无人机小知识:Pitch Yaw Roll的经典解释

    无人机的一个最基本的基础知识就是对Pitch Yaw Roll三个方向的辨别 查了下网上很多资料 xff0c 都采用的下面的几张图进行说明 xff0c 我觉得很直观 xff0c 记录一下 xff0c 当做备忘录 机体坐标系 xff1a 固定
  • 编译警告:warning: Clock skew detected. Your build may be incomplete.

    在编译darknet ros程序时 xff0c 遇到如下警告 xff1a make 2 Warning File 39 darknet ros darknet ros CMakeFiles darknet ros lib dir depen
  • Yolo v4系列学习(四)Yolo v4移植ROS

    目录 1 建立名为catkin ws的工作空间2 下载darknet ros包3 下载Yolo v4源码4 开始编译5 漫长的解决Bug的过程6 配置Yolo v4 43 ROS7 开始使用Yolo v4 43 ROS8 调参参考网址 1
  • C++(14):make_unique

    C 43 43 14增加了make unique xff0c 用于创建unique ptr对象 xff1a include lt iostream gt include lt memory gt using namespace std in
  • Git:修改commit内容

    在提交code xff0c 使用git commit编写注释时 xff0c 如果发现注释的内容不太准确 xff0c 需要修改怎么办 xff1f 比如 xff0c 当前写的注释是 xff1a this is fix for XXX 在git
  • ros安装详细教程+问题解决

    官方英文连接 xff1a melodic Installation Ubuntu ROS Wiki 如果一下命令有疑问 xff1a 见上方官方文档 xff0c 也很简洁 ROS有许多版本 xff0c ubuntu20 04对应的版本Noet
  • 激光slam 理论详解(一)

    什么是slam 技术 slam Simultaneous Localization and Mapping 叫即时定位与建图 xff0c 它主要的作用是让机器人在未知的环境中 xff0c 完成定位 xff08 Localization xf
  • gazebo模型下载以及配置

    最近在学习ROS xff0c 主要是为了结合SLAM仿真使用 启动gazebo命令 roscore 在另一个终端执行 gazebo 就可以进入清爽的gazebo界面 xff08 如果屏幕出现黑屏并不是安装错误可以稍微等待一会 xff09 x
  • ROS中在一个包里引用其他包内的自定义消息或服务

    假设我们要在a package中引用b package里自定义的my message msg 方法1 可直接通过添加依赖的方式解决 首先在创建包时添加b package catkin create pkg std msgs roscpp r
  • 第三篇 视觉里程计(VO)的初始化过程以及openvslam中的相关实现详解

    视觉里程计 xff08 Visual Odometry VO xff09 xff0c 通过使用相机提供的连续帧图像信息 xff08 以及局部地图 xff0c 先不考虑 xff09 来估计相邻帧的相机运动 xff0c 将这些相对运行转换为以第
  • ROS : 参数服务器之动态调参(dynamic_reconfigure)

    另外参考链接 xff1a ROS动态参数配置 xff1a dynparam命令行工具的使用 xff08 示例 43 代码 xff09 肥肥胖胖是太阳的博客 CSDN博客 参数服务器实现的功能 xff1a 修改参数后 xff0c 不需要重新编