(1)列出当前多有参数
rosparam list
(2)显示某个参数值
rosparam get param_key
(3)设置某个参数值
rosparam set param_key param_value
(4)保存参数到文件
rosparam dump file_name
(5)从文件读取参数
rosparam load file_name
(6)删除参数
rosparam delete param_key
以上命令需要在节点运行的情况下使用
本章节主要内容是以参数的使用和编程方法为主,使用的IDE是vs code,关于ubuntu系统下vs code的安装可以参考我的另一篇博客,链接如下
https://blog.csdn.net/weixin_45417246/article/details/115444048.
新建文件夹catkin_parameter,并在文件夹下新建src文件夹,这里可以不进行工作空间的初始化,并用vs code打开catkin_parameter文件,按住Ctrl+Tab+~键,在vs code打开终端,在/fjy/catkin_parameter路径下进行编译,并添加环境变量
cd ~/fjy/catkin_parameter //转到catkin_turtle路径下
catkin_make //编译
source devel/setup.bash //设置环境变量
按住Fn+F1,在搜索栏中输入C/C++编辑配置,点击C/C++编辑配置,会在左边目录产生一个.vscode文件夹,单击该文件夹下的c_cpp_properties.json文件,并添加路径,按Ctrl+s保存,路径如下
“/opt/ros/kinetic/include” //使头文件包含合理
在/catkin_parameter/src路径下创建功能包parameter,博主这边通过终端命令行进行创建
catkin_create_pkg parameter roscpp std_srvs
然后在/catkin_parameter/src/parameter/src路径下创建parameter_config.cpp文件
touch parameter_config.cpp
并单击打开该c++文件进行程序的编写,程序如下
//相关头文件引用
#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("/background_r", red);
ros::param::get("/background_g", green);
ros::param::get("/background_b", blue);
//将读取到的rgb值打印出来
ROS_INFO("Get Backgroud Color[%d, %d, %d]", red, green, blue);
// 设置背景颜色参数
ros::param::set("/background_r", 255);
ros::param::set("/background_g", 255);
ros::param::set("/background_b", 255);
//将设置好的rgb值打印出来
ROS_INFO("Set Backgroud Color[255, 255, 255]");
// 再次读取背景颜色参数
ros::param::get("/background_r", red);
ros::param::get("/background_g", green);
ros::param::get("/background_b", blue);
//将读取到的rgb值打印出来
ROS_INFO("Re-get Backgroud 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;
}
然后编辑功能包parameter下的CMakeLsits.txt文件和package.xml文件,package.xml文件一般在创建功能包时默认设置好了,不需要修改,只需要在CMakeLists.txt文件下添加以下两行代码即可
add_executable(parameter_config src/parameter_config.cpp) //生成可执行文件
target_link_libraries(parameter_config ${catkin_LIBRARIES}) //连接库
完成这些后,回到/catkin_parameter路径下,进行编译
编译完成后就可以运行节点试验一下,打开一个终端启动roscore,再重新打开一个终端,运行命令rosrun turtlesim turtlesim_node,来打开海龟仿真器,然后在vs vode终端下输入命令rosrun parameter parameter_config,即可查看运行效果,可以看到小海龟背景的颜色从最初的默认蓝色变成了白色,和程序中描述的内容的一致