網(wǎng)站建設(shè)頁面頁腳怎么設(shè)置b站推廣2024mmm已更新
需求:實(shí)現(xiàn)參數(shù)服務(wù)器參數(shù)的增刪改查操作。
在C++中實(shí)現(xiàn)參數(shù)服務(wù)器數(shù)據(jù)的增刪改查,可以通過兩套API實(shí)現(xiàn):.
ros::NodeHandle
ros::param
下面為具體操作演示:
在src下面的自己定義的作用包下面新建文件。
比如我的是一直存在的demo03_ws文件下的src里面,先右擊src 創(chuàng)建新的功能包c(diǎn)reat catkin package,將包名命名為plumbing_param_server,然后添加roscpp,rospy,std_msgs.創(chuàng)建完成之后。
在plumbing_param_server下面的src新建文件
命名demo01__param_set.cpp
實(shí)現(xiàn):
ros : : NodeHandle
setParam ("鍵",值)
ros : :param
set("鍵",值)
修改,只需要繼續(xù)調(diào)研 setparam 或set函數(shù) ,保證鍵是已經(jīng)存在的,那么值會覆蓋。
輸入以下代碼:
#include "ros/ros.h"int main(int argc, char** argv){//初始化 ROS節(jié)點(diǎn);ros::init(argc, argv, "set_param_c");// 3.創(chuàng)建節(jié)點(diǎn)句柄;ros::NodeHandle nh;
//參數(shù)增---------------------------------------
//方案一:nhnh.setParam("type", "xiaohuang");nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("type_param", "xiaobai");ros::param::set("radius_param", 0.15);return 0;
}
編譯cmakelist文件。
完畢之后ctrl+shift+b進(jìn)行編譯。
然后ctrl+alt+t打開終端
輸入roscore啟動ros
然后新開一個終端
輸入
source ./devel/setup.bash
rosrun plumbing_param_server demo01_param_set
驗(yàn)證:新開一個終端,輸入rosparam list列出當(dāng)前存在的所有參數(shù)服務(wù)器
獲取當(dāng)前參數(shù)的數(shù)值:rosparam get /***
比如rosparam get /type
參數(shù)的修改:和上面是一樣的。加入下面的代碼就可以實(shí)現(xiàn)覆蓋修改。加入以下函數(shù)代碼:
//參數(shù)改--------------------------------------
//方案一:nh
nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("radius_param", 0.25);
整體:
#include "ros/ros.h"int main(int argc, char** argv){//初始化 ROS節(jié)點(diǎn);ros::init(argc, argv, "set_param_c");// 3.創(chuàng)建節(jié)點(diǎn)句柄;ros::NodeHandle nh;
//參數(shù)增---------------------------------------
//方案一:nhnh.setParam("type", "xiaohuang");nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("type_param", "xiaobai");ros::param::set("radius_param", 0.15);//參數(shù)改--------------------------------------
//方案一:nh
nh.setParam("radius", 0.15);//方案二:ros::paramros::param::set("radius_param", 0.25);return 0;
}
下面的修改會覆蓋上面的內(nèi)容
檢查一下:ctrl+shift+b進(jìn)行編譯,終端中打開。
獲取當(dāng)前參數(shù)的數(shù)值:rosparam get /***