当前位置:网站首页>ROS参数服务器

ROS参数服务器

2022-06-11 00:25:00 Mbot

先在工作空间下创建一个功能包

catkin_create_pkg test_param std_msgs roscpp rospy

在功能包下创建一个param文件夹
在这里插入图片描述
在param文件夹下创建一个param.yaml文件
内容如下:

string: dsad3421
num1: 564.65
num2: 87896
sub_param_set:
  string: cvvx
  num: 423
  sub_sub_param_set:
    string: gfdg
    num: 767

然后将参数载入:
先运行

roscore

再在param文件夹目录下运行

rosparam load param.yaml
rosparam list

结果如下:
在这里插入图片描述
可以用rosparam get和rosparam set来获取和设置参数值
在这里插入图片描述
在功能包的src目录下创建test_param.cpp
在这里插入图片描述
填入以下内容:

#include <string>
#include <ros/ros.h>
int main(int argc, char **argv)
{
     int aaa;
    // ROS节点初始化
    ros::init(argc, argv, "parameter_config");
    // 创建节点句柄
    ros::NodeHandle node;
    ros::param::get("/sub_param/num", aaa);
    ROS_INFO("aaa=%d\n", aaa);
    return 0;
}

在功能包的CMakeLists.txt中加入:

add_executable(test_param src/test_param.cpp)
target_link_libraries(test_param ${catkin_LIBRARIES})

然后catkin_make编译后运行

rosrun test_param test_param

结果如下,在运行这个节点的时候,必须用rosparam load 加载参数文件后,ROS里面才能get到参数的值,我这里之前使用rosparam set设置过参数/sub_param/num的值为456,所以这里get的值为456,如果没有set,则这个值就是参数文件中的值
在这里插入图片描述

原网站

版权声明
本文为[Mbot]所创,转载请带上原文链接,感谢
https://mbot1.blog.csdn.net/article/details/125162895