ROS學習 cpp引數伺服器

2021-07-27 02:24:07 字數 1551 閱讀 4485

wiki 鏈結

ros的引數伺服器可以儲存字串,整型,浮點型,布林型,列表,字典,iso8601資料,64基編碼資料.字典資料要有字串鍵.

roscpp的引數api支援所有這些,儘管在使用中常使用strings,integers,floats,booleans.xmlrpc::xmlrpcvalue類實現了其它資料型別

roscpp有兩類引數api,直接版本在ros::param名字空間下,控制代碼版本在ros::nodehandle類下,接下來分別介紹兩種版本:

從引數伺服器內獲取乙個引數值.

a. ros::nodehandle::getparam()方法

通過節點控制代碼取得引數與節點控制代碼的名字空間有關.

ros::nodehandle nh;

std::string global_name, relative_name, default_param;

if (nh.getparam("/global_name", global_name))

if (nh.getparam("relative_name", relative_name))

// default value version

nh.param("default_param", default_param, "default_value");

b.ros::param::get()方法

直接版本獲取引數與節點的名字空間有關.

std::string global_name, relative_name, default_param;

if (ros::param::get("/global_name", global_name))

if (ros::param::get("relative_name", relative_name))

// default value version

ros::param::param("default_param", default_param, "default_value");

控制代碼方式

ros::nodehandle nh;

nh.setparam("/global_param", 5);

nh.setparam("relative_param", "my_string");

nh.setparam("bool_param", false);

直接方式

ros::param::set("/global_param", 5);

ros::param::set("relative_param", "my_string");

ros::param::set("bool_param", false);

控制代碼方式: ros::nodehandle::hasparam()

直接方式: ros::param::has()

控制代碼方式: ros::nodehandle::deleteparam()

直接方式: ros::param::del()

ros::nodehandle::searchparam("bar",key)

ros::param::serch("bar",key)

ROS學習之 cpp引數伺服器

wiki鏈結 wiki.ros.org roscpp overview parameter 20server ros的引數伺服器可以儲存字串,整型,浮點型,布林型,列表,字典,iso8601資料,64基編碼資料.字典資料要有字串鍵.roscpp的引數api支援所有這些,儘管在使用中常使用string...

ROS 引數伺服器

ros中提供了的引數伺服器機制,使用者可以將引數以 yaml 檔案格式儲存在本地,程式執行 執行launch檔案 時動態載入,修改引數並不需要重新編譯。而且,ros中更為人性化的一點就是支援程式執行時動態修改引數,實時的觀測引數對執行結果的影響,極大地方便了引數除錯。ros通過 launch 檔案載...

ROS引數伺服器

ros引數伺服器像是乙個共享記憶體,我們通過節點內的 終端命令,launc 件,任何程序都可以讀取,寫入或者更改引數伺服器上的引數值。例如我們通過執行 以下命令啟動乙個launc 件 roslaunch packgname filenamelaunc 件的內容為 load file find cus...