roslaunch与param使用

param:

Param基本功能

什么是Param¶

ParamParameters的简写,意为参数。在ROS种,起到的作用是节点间共享数据。

实现的原理是将需要共享的数据存放到ROS Master中,这样所有的节点都可以访问。

roslaunch与param使用_第1张图片

存储规范¶

Param存储数据遵循的是YAML规范。

如果去简单的理解,可以认为是一个key value的组合,key是string类型,value 的类型可以有多种。

value的类型有:

  • integer: 整数类型
  • boolean: bool类型
  • double: 小数类型
  • list: 集合列表类型
  • map: 字典类型
  • binary: 二进制数据类型

命令行工具¶

ROS 提供了命令行工具,供我们对Param进行操作。

查询操作¶

rosparam list

通过list命令,可以查询出当前所有可共享的参数。

/rosdistro
/roslaunch/uris/host_ubuntu__40479
/rosversion
/run_id

获取操作¶

rosparam get /run_id

Tip

通过get命令可以获取要获取的值

设置操作¶

rosparam set /run_id aaa

Tip

通过set命令可以修改参数的值

删除操作¶

rosparam delete /run_id

Tip

可以产出对应的key

导出Param¶

rosparam dump abc.yml

Tip

dump命令可以把当前的param导出为一个文件

导入Param¶

rosparam load abc.yml

Tip

load命令可以把yml文件导入到param中

API使用
前言¶
我们在开发过程中,通常在API层级中是需要操作Param数据的,并且通Param进行数据操作

C++操作Param¶
获取所有参数名称¶

vector names;
if(node.getParamNames(names)) {
    for(string name : names) {
        ROS_INFO(name);
    }
}
获取参数的值¶

node.getParam(name);
设置参数的值¶

node.setParam(name, value);
判断参数是否存在¶

node.hasParam(name)
Python操作Param¶
获取所有参数名称¶

names = rospy.get_param_names()
获取参数的值¶

rospy.get_param(name)
设置参数的值¶

node.set_param(name, value);
判断参数是否存在¶

node.has_param(name)

代码:

c++

 /*-------------------------- 设置param --------------------------*/
    node.setParam("/heihei",123);
    /*-------------------------- param --------------------------*/
    //获取所有的param
    //定义vector保存所有的param的名字
    vector names;
    string value;
    int a;
    node.getParam("heihei",a);
    ROS_INFO_STREAM("HEIHEI----"<

python:

#!/usr/bin/env python
# coding:utf-8
import rospy
import sys

if __name__ == '__main__':
    # 创建节点
    rospy.init_node("param_node_py")
    rospy.loginfo('param----- py ---- {}'.format(sys.argv))
    result = rospy.get_param_names()
    for ele in result:
        value = rospy.get_param(ele)
        rospy.loginfo(value)

    rospy.spin()

launch:


    
    
    
    
    


    
    
    
    
    

    




    
        
        
    


    
    
    
    
    
    
        
    

    
    
        
        
        
    

    
    


    
    
    
    

    
    
        
        
        
    

    
    

    
    
    
    


    
    
    
    
    
    

启动: launch 

roslaunch demo_tf config.launch 

 URDF与xacro 制作模拟仿真 启动配置


    
    
    
 
    
    
 
    
    
    

启动: 仿真
 roslaunch demo_tf config.launch mode:=geometry_box.urdf 后面参数自己改,不传的话默认geometry_box.urdf

你可能感兴趣的:(python,ros,clion,roslaunch,ros,launch)