6.20-Param reconfig讨论

参考
前言
工作
步骤
坐标修正
学习dynamic config
dynamic reconfig具体技术
Service Call-Based Re-configuration 实践

TOC

参考

ROS WIKI

dynamic_reconfigure

前言

  • 因为windows平台的ROS for LV 没有显式支持action,所以不能直接给move_base节点发送move_base/cancel (actionlib_msgs/GoalID),故在ROS端添加一个Proxy来代理解决
  • 该代理的功能还包括ROSARIA和move_base的reconfigure,所以要从命令行运行重新配置命令
  • 还修正一个ROSARIA发送的pose_msg内容为相对坐标的问题,改为发送相对于zsWorld坐标系的绝对坐标(在rosaria包中完成)
  • 以后还可以承担打开和关闭各个节点的任务!

工作

  1. ROSARIA坐标修正,并制作一个reconfiguration_server(在rosaria包中完成)
  2. 接收上级节点发送的取消service_call,转发给move_base取消action_msg
  3. 接收来自上级节点的move_base reconfigure_msg,运行命令行进行重新配置
  4. 接收来自上级节点的rosaria reconfigure_msg,运行命令行进行重新配置
  5. 接收来及上级节点的重新定位的msg,运行命令行重新配置tf,主要是zsWorld与odom的坐标系转换关系
  6. 确认ROS for LV与ROS的连接关系
  7. 用rosaria_client进行测试

步骤

坐标修正

  • 建立一个包
catkin_create_pkg zsProxy std_msgs roscpp
  • 修改vscode 配置文件c_cpp_properties.json
subl ./.vscode/c_cpp_properties.json
{
            "name": "Linux",
            "includePath": ["/usr/include",
            "/opt/ros/indigo/include",
            "${ROS_PACKAGE_PATH}",
            "/opt/ros/kinetic/include"]
},
  • 修改 .gitignore,vscode的数据文件就不要上传了
.vscode/

学习dynamic config

  • 关于参数概念的详细讨论

    主要有两种访问参数的方法,一种是参数服务器,生命周期随roscore;另外一种就是动态重新配置参数,可以在程序运行时进行重新配置参数

  • 关于参数具体实现和模式的讨论

    In roslaunch files, tags are for setting a single parameter and tags are for setting groups or more complex structures of parameters.

    The value set by the tag may only be a string, int, bool, or double, which may be set through the xml attribute value, or by reading in from a text file, bin file, or the output of a command line command.

    The tag enables users to define a batch of related parameters simultaneously. These can be read from a YAML string which can either be put inline in the launchfile or can be loaded from a file (the rosparam dump command generates YAML output). Unlike the tag, the YAML specification allows nested structures of parameters and parameters with list values. While these data can be represented on the ROS parameter server, it is up to the various client libraries to support complex parameter access.

    A good example of the tag use in practice is the move_base package, where there are many, many parameters to be set, it‘s less cumbersome to just use the YAML format.

dynamic reconfig具体技术

Service Call-Based Re-configuration 实践

  • 使用上面所述第二种方法,使用命令行执行,可以在shell中执行,不过最好在C++中执行
rosrun dynamic_reconfigure dynparam set /<node_name> <param> <value>
system("rosrun dynamic_reconfigure dynparam set camera_synchronizer_node narrow_stereo_trig_mode 3");

关于dynparam更详细的用法

原文地址:https://www.cnblogs.com/lizhensheng/p/11117575.html

时间: 2024-11-05 20:30:30

6.20-Param reconfig讨论的相关文章

Day 20 迭代器、生成器

一. 迭代器 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个iter()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象 二.python中for循环机制 for循环的本质:循环所有对象,全都是使用迭代器协议. 正

清华教授李稻葵:恒昌、宜信过去三四年走过了西方国家20年的历程!

?? 导读 在"2017首届科技金融国际峰会"上,清华大学中国与世界经济研究中心主任李稻葵先生为大家带来<科技创新时代的中国金融新格局>的精彩讲演.李先生在他发言中着重就当前经济时代格局下的中国金融新格局走势,阐明他的观点与看法. 未来这一两年,影响金融的走势无非是三大因素:中国实体经济的结构调整.国际政治和科技. 一.很多人讲,中国经济结构调整速度太慢,我并不同意这个观点.结构调整已经开始. 原因有三个: 第一,我们的劳动收入占GDP比重开始回升了. 从1992年一直到零

2016年4月最佳的20款 jQuery 插件推荐

这个列表包括20个我们觉得是最有用的免费的 jQuery 插件,它们都是最具创新性和最省时省力的解决方案,很多都是现代化的设计和开发中碰到的问题的处理方案.如果你熟悉下面列出的任何插件,请与我们的读者分享您的意见,或者如果您知道的我们还没有包括的话,请与我们分享在下面的评论部分. 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很实用的10个效果[源码

设计模式 -- 组合模式(Composite)

写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------主要内容包括: 初识组合模式,包括:定义.结构.参考实现 体会组合模式,包括:场景问题.不用模式的解决方案.使用模式的解决方案 理解组合模式,包括:认识组合模式.安全性和透明性.父组件引用.环状引用.组合模式的优缺点 思考组合模式,包括:组合模式的本质.何时选用 参考内容: 1.<研磨设计模式> 一书,作者:陈臣.王斌 --

Java多线程技术学习笔记(一)

目录: 概述 多线程的好处与弊端 JVM中的多线程解析 多线程的创建方式之一:继承Thread类 线程的状态 多线程创建的方式之二:实现Runnable接口 使用方式二创建多线程的好处 多线程示例 线程安全问题现象 线程安全问题产生的原因 同步代码块 同步的好处与弊端 同步的前提 同步函数 验证同步函数的锁 单例模式的线程安全问题的解决方案 死锁示例 一.概述 目录 首先得了解进程,打开我们电脑的windows资源管理器,可以直观看到进程的样子: 进程直观上理解就是正在进行的程序.而每个进程包含

【DDD】业务建模实践 —— 发布帖子

本文是基于上一篇‘业务建模小招数’的实践,主要讲解‘发表帖子’场景的业务建模,包括:业务建模.业务模型.示例代码:示例代码会使用java编写,文末附有github地址.相比于<领域驱动设计>原书中的航运系统例子,社交服务系统的业务场景对于大家更加熟悉,相信更好理解.本文是[DDD]系列文章的第一篇,可参考:通过业务系统的重构实践DDD Round-I 业务建模 在大家的常识中,每个人都有自己的观点,并可以发表自己的观点,在社区中便表现为:发布帖子.那么谁发布帖子呢? 很明显是帖子作者,于是我们

动态调用WebService(C#) (非常实用)

前言 站在开发者的角度,WebService 技术确实是不再“时髦”.甚至很多人会说,我们不再用它.当然,为了使软件可以更简洁,更有层次,更易于实现缓存等机制,我是非常建议将 SOAP 转为 RESTful 架构风格的.但到目前为止,WebService 在一些Public Institution 中使用还是十分广泛的. 这里主要讨论一下关于WebService的调用问题.关于WebService 的调用分为静态调用和动态调用两种,外加直接Http请求方式 静态调用 静态调用的方式是通过“Add

android 提升性能总结

出色的用户体验有三个特征:速度快.响应及时以及无缝.下面的信息帮助你的应用如何能够在Android上实现这些特征. 一.速度快 你不能假设手机与桌面系统和服务器一样提速,更多的是你要关注你的代码是否高效. 编写高效的Android代码,应遵循两个原则: 不要做不必要的事 不要分配不必要的内存 以下是一些达到此目标的小技巧(有一些技巧是与oo的原则冲突,斟酌使用场景): 1.避免建立对象 例如,int数组比Integer数组好,同理,这适用于所有基本类型的组合 2.使用本地方法 不要吝惜使用Str

应用程序框架实战二十四:基础查询扩展 - 分页与排序

上一篇介绍了IQueryable的Where方法存在的问题,并扩展了一个名为Filter的过滤方法,它是Where方法的增强版.本篇将介绍查询的另一个重要主题——分页与排序. 对于任何一个信息系统,查询都需要分页,因为不可能直接返回表中的所有数据. 如果直接使用原始的Ado.Net,我们可以编写一个通用分页存储过程来进行分页查询,然后通过一个DataTable返回给业务层.不过进入Entity Framework时代,分页变得异常简单,通过Skip和Take两个方法配合就可以完成任务. 为了让分