精通ROS机器人编程(原书第2版) 》 —1.5.7 应用ROS参数

网友投稿 666 2022-05-29

1.5.7 应用ROS参数

对一个机器人进行编程时,我们可能必须定义机器人参数,如机器人控制器中的P、I、D参数。随着参数数量的增加,我们可能需要将这些参数存储在文件中。有时两个或多个程序需要共享这些参数。在这种情况下,ROS提供了一个参数共享服务器,所有的ROS节点都可以从该服务器访问参数。节点还可以通过参数服务器读取、写入、修改、删除参数值。

我们可以把这些参数存储在一个文件中,并将它们加载到参数服务器中。服务器可以存储各种各样的数据类型,甚至可以存储字典。用户还可以设置参数的范围,如该参数是否仅可以被某个节点访问,还是可以被所有节点访问。

ROS参数服务器支持如下的XMLRPC数据类型:

32位整型(32-bit integer)

布尔值(Boolean)

字符串(String)

双精度浮点型(Double)

ISO8601日期型(ISO8601 date)

列表(List)

基于64位编码的二进制数据(Base64-encoded binary data)

我们还可以在参数服务器上存储字典。如果参数数量很多,我们可以使用YAML文件保存它们。下面就是YAML文件参数定义的示例:

rosparam工具用于从命令行获取和设置ROS参数。下面是使用ROS参数的命令:

$ rosparam set [parameter_name] [value]:该命令将为指定参数设置一个值。

$ rosparam get [parameter_name]:该命令将获取指定参数的参数值。

《精通ROS机器人编程(原书第2版) 》 —1.5.7 应用ROS参数

$ rosparam load [YAML file]:ROS参数可以存储在YAML文件中,用该命令可以将YAML文件加载到参数服务器。

$ rosparam dump [YAML file]:该命令将现有的ROS参数转储到YAML文件中。

$ rosparam delete [parameter_name]:该命令删除指定的参数。

$ rosparam list: 该命令列出所有的参数名称。

利用dynamic_reconfigure 软件包(http://wiki.ros.org/dynamic_reconfigure),在节点运行过程中,使节点参数可以动态更新。

软件开发

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《TCP/IP详解 卷2:实现》 —2.11 小结
下一篇:《5G NR物理层技术详解:原理、模型和组件 》 —2.4 物理信道
相关文章