#这个系列文章,是我学习B站ros教程(赵虚左)所做的学习记录,目的是整理学习过程中的思路。着力推荐赵老师的学习教程。
实现参数删除有两种方式。
一、第一种方法
1、新建文件
在src文件夹中新建C++文件:demo03_param_del
2、编写程序:
#include "ros/ros.h"
int main(int argc,char *argv[]){
setlocale(LC_ALL,"");
ros::init(argc,argv,"param_del_c");
ros::NodeHandle nh;
//删除:NodeHandle-----------------------------
bool flag1=nh.deleteParam("radius");
if(flag1)
{
ROS_INFO("删除成功!");
}else{
ROS_INFO("删除失败!");
}
return 0;
}
3、配置文件
add_executable(demo03_param_del src/demo03_param_del.cpp)
target_link_libraries(demo03_param_del
${catkin_LIBRARIES}
)
4、编译
ctrl+shift+b
5、查看结果:
二、第二种方法
1、编写程序
//ros::param---
bool flag2=ros::param::del("radius_param");
if(flag2)
{
ROS_INFO("删除成功!");
}else{
ROS_INFO("删除失败!");
}
2、在执行之前重新设置参数
rosrun plumbing_param_server demo03_param_set
3、执行删除行为
rosrun plumbing_param_server demo03_param_del
4、查看结果
三、最终程序
#include "ros/ros.h"
/*
参数服务器操作之删除_C++实现:
ros::NodeHandle
deleteParam("键")
根据键删除参数。删除成功,返回 true,否则(参数不存在),返回 false
ros::param
del("键")
根据键删除参数。删除成功,返回 true,否则(参数不存在),返回 false
*/
int main(int argc,char *argv[]){
setlocale(LC_ALL,"");
ros::init(argc,argv,"param_del_c");
ros::NodeHandle nh;
//删除:NodeHandle-----------------------------
bool flag1=nh.deleteParam("radius");
if(flag1)
{
ROS_INFO("删除成功!");
}else{
ROS_INFO("删除失败!");
}
//ros::param---
bool flag2=ros::param::del("radius_param");
if(flag2)
{
ROS_INFO("删除成功!");
}else{
ROS_INFO("删除失败!");
}
return 0;
}