当前位置:网站首页>ROS dynamic parameters
ROS dynamic parameters
2022-08-02 00:18:00 【2021 Nqq】
客户端实现 dr.cfg
本质上是Python文件
#! /usr/bin/env python
"""
Dynamic parameter client:
1. 导包
2. Create a parameter producer
3. Add parameters to the generator
4. 配置节点,并退出
"""
# Import the function package corresponding to the parameter server
from dynamic_reconfigure.parameter_generator_catkin import *
# 2. Create a parameter producer
gen = ParameterGenerator()
# 3. Add parameters to the generator
# add(name, paramtype, level, description, default=None, min=None, max=None, edit_method="")
gen.add("int_param",int_t,0,"整数参数",10,1,100)
# 4. 配置节点,并退出
# generate(pkgname, nodename, name)
exit(gen.generate("demo02_dr","dr_client","dr"))
Dynamic parameter server C++
/* Dynamic parameter server process: 1. 包含头文件 2. 初始化操作 3. 创建服务端对象 4. The callback function parses the modified parameters 5. spin() */
#include"ros/ros.h"
#include"dynamic_reconfigure/server.h"
#include"demo02_dr/drConfig.h"
void cb(demo02_dr::drConfig &config, uint32_t level)
{
ROS_INFO("The modified integer data is: %d",config.int_param);
}
int main(int argc, char *argv[])
{
// 2. 初始化操作
setlocale(LC_ALL,"");
ros::init(argc,argv,"dr_server");
// 3. 创建服务端对象
dynamic_reconfigure::Server<demo02_dr::drConfig> server;
// 4. The callback function parses the modified parameters
// void setCallback(const boost::function<void (demo02_dr::drConfig &, uint32_t level)> &callback)
server.setCallback(boost::bind(&cb,_1,_2));
// 5. spin()
ros::spin();
return 0;
}
Dynamic parameter server Python
#! /usr/bin/env python
""" Dynamic parameter server: Print directly when the parameter is modified 实现流程: 1.导包 2.初始化 ros 节点 3.创建服务端对象 4.Callback function parsing function 5.spin """
import rospy
from dynamic_reconfigure.server import Server
from demo02_dr.cfg import drConfig
# 回调函数
def cb(config,level):
rospy.loginfo("python Dynamic parameter service resolution:%d,%.2f,%d,%s,%d",
config.int_param,
config.double_param,
config.bool_param,
config.string_param,
config.list_param
)
return config
if __name__ == "__main__":
# 2.初始化 ros 节点
rospy.init_node("dr_server_p")
# 3.创建服务端对象
# Server(type, callback, namespace="")
# type是类型 callback 回调函数
server = Server(drConfig,cb)
# 4.Callback function parsing function
# 5.spin
rospy.spin()
边栏推荐
猜你喜欢
随机推荐
Excel导入和导出
JSP内置对象out对象的功能简介说明
【Leetcode】475. Heaters
LeetCode_518_零钱兑换Ⅱ
An interesting project--Folder comparison tool (1)
回顾历史5次经济衰退时期:这一次可能会有何不同?
Axure教程-新手入门基础(小白强烈推荐!!!)
JSP如何使用request获取当前访问者的真实IP呢?
Win11内存管理错误怎么办?
具有通信时延的多自主体系统时变参考输入的平均一致性跟踪
不就是个TCC分布式事务,有那么难吗?
22.支持向量机—高斯核函数
Task execution control in Ansible
460. LFU 缓存
els 长条变形
Excel表格数据导入MySQL数据库
Axure tutorial - the new base (small white strongly recommended!!!)
How does JSP use request to get the real IP of the current visitor?
好好活就是做有意义的事,有意义的事就是好好活
【21天学习挑战赛】顺序查找和二分查找的小总结









