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

1.参数模型:

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

2.创建功能包:

 

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<string>
#include<ros/ros.h>
#include<std_srvs/Empty.h>

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<std_srvs::Empty>("/clear");
    std_srvs::Empty srv;
    clear_background.call(srv);
    
    sleep(1);
    
    return 0;
}

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

6.编译并运行:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值