ROS学习笔记9:参数的使用与编程方法(实践作业)

1.参数模型:

        参数可以理解为ROS中的全局变量,储存在ROS Master中(也就是roscore中),每一个节点都可以访问ROS Master中的参数。

ROS学习笔记9:参数的使用与编程方法(实践作业)_第1张图片

2.创建功能包:

ROS学习笔记9:参数的使用与编程方法(实践作业)_第2张图片

ROS学习笔记9:参数的使用与编程方法(实践作业)_第3张图片 

3.与参数相关的命令行:

(1)rosparam命令:查看与参数相关的命令

(2)rosparam list命令:列出当前所有参数

(3)rosparam get param_key命令:显示某个参数值

(4)rosparam set param_key param_value命令:设置某个参数值

(5)rosparam dump file_name命令:保存参数至文件,文件默认位于主文件夹

(6)rosparam load file_name命令:从文件读取参数

(7)rosparam delete param_key命令:删除某参数

4.如何获取/设置参数:

(1)初始化ROS节点,创建名为“parameter_config”的节点;

(2)get函数获取参数;

(3)set函数设置参数。

#include
#include
#include

int main(int argc, char **argv)
{
    int red, green, blue;
    
    //ROS节点初始化
    ros::init(argc, argv, "parameter_config");
    
    //创建节点句柄
    ros::NodeHandle node;
    
    //读取背景颜色参数
    ros::param::get("/turtlesim/background_r",red);
    ros::param::get("/turtlesim/background_g",green);
    ros::param::get("/turtlesim/background_b",blue);
    
    ROS_INFO("Get Background Color[%d, %d, %d]",red, green, blue);
    
    //设置背景颜色参数
    ros::param::set("/turtlesim/background_r",255);
    ros::param::set("/turtlesim/background_g",255);
    ros::param::set("/turtlesim/background_b",255);
    
    ROS_INFO("Set Background Color[255, 255, 255]");
    
    //读取背景颜色参数
    ros::param::get("/turtlesim/background_r",red);
    ros::param::get("/turtlesim/background_g",green);
    ros::param::get("/turtlesim/background_b",blue);
    
    ROS_INFO("Re-get Background Color[%d, %d, %d]",red, green, blue);
    
    //调用服务,刷新背景颜色
    ros::service::waitForService("/clear");
    ros::ServiceClient clear_background = node.serviceClient("/clear");
    std_srvs::Empty srv;
    clear_background.call(srv);
    
    sleep(1);
    
    return 0;
}

5.配置CMakeLists.txt中的编译规则:

6.编译并运行:

ROS学习笔记9:参数的使用与编程方法(实践作业)_第4张图片

 

你可能感兴趣的:(ROS编程技术,学习)