《精通ROS机器人编程(原书第2版) 》 —1.5.7 应用ROS参数
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]:该命令将获取指定参数的参数值。
$ 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),在节点运行过程中,使节点参数可以动态更新。
- 点赞
- 收藏
- 关注作者
评论(0)