ROS系统 参数的获取和设置
rosparam
- 列出當(dāng)前所有參數(shù):rosparam list
- 顯示某個(gè)參數(shù)值:rosparam get param_key
- 設(shè)置某個(gè)參數(shù)值:rosparam set param_key param_value
- 保存參數(shù)到文件:rosparam dump file_name
- 從文件讀取參數(shù):rosparam load file_name
- 刪除參數(shù):rosparam delete param_key
啟動(dòng)ROS Master
roscore啟動(dòng)小海龜仿真器
rosrun turtlesim turtlesim_node列出當(dāng)前所有參數(shù)
rosparam list- 背景顏色
- /turtlesim/background_b
- /turtlesim/background_g
- /turtlesim/background_r
- ros版本號(hào)
- /rosversion
- 當(dāng)前進(jìn)程的id
- /run_id
- 管理 ROS分布及其包含的 ROS堆棧的文件格式
- rosdistro
獲取 /turtlesim/background_b、/turtlesim/background_g、/turtlesim/background_r的參數(shù)。
rosparam get /turtlesim/background_b rosparam get /turtlesim/background_g rosparam get /turtlesim/background_r獲取ROS的發(fā)行版
rosparam get /rosdistro
獲取ROS的版本
修改小海龜仿真器的背景顏色
rosparam set /turtlesim/background_b 100 rosparam get /turtlesim/background_brosservice call /clear "{}"
使用 rosservice call 發(fā)送請(qǐng)求,當(dāng)rgb的值發(fā)生改變會(huì)刷新背景顏色。
小海龜仿真器的背景顏色變?yōu)榘咨?/p>
rosparam set /turtlesim/background_r 255
rosparam set /turtlesim/background_b 255
rosparam set /turtlesim/background_g 255rosservice call /clear "{}"
將參數(shù)的內(nèi)容保存在文件中
rosparam dump param.yaml
然后可以對(duì)通過在文件中去修改一些參數(shù)。
從文件讀取參數(shù)
rosparam load param.yaml發(fā)送指令刷新讀取的值
rosservice call /clear "{}"從參數(shù)列表中刪除一個(gè)參數(shù):
rosparam delete /turtlesim/background_r rosparam listrosservice call /clear "{}"刪除后,使用 rosparam list 命令,會(huì)看到列表中的 /turtlesim/background_r 參數(shù)已經(jīng)消失。
如何通過代碼獲取/設(shè)置參數(shù)
- 初始化ROS節(jié)點(diǎn)
- get函數(shù)獲取參數(shù)
- set函數(shù)設(shè)置參數(shù)
以下是通過C++代碼實(shí)現(xiàn)以上操作參數(shù)的增刪改查。
在 learning_parameter 目錄中的src文件夾下創(chuàng)建一個(gè) cpp文件
cd ~/catkin_ws/src/learning_parameter/src touch parameter_config.cpp在 parameter_config.cpp 文件中寫入以下代碼。
下面代碼實(shí)現(xiàn)功能:設(shè)置/讀取海龜例程中的參數(shù)
在CMakeLists.txt中添加以下代碼:
add_executable(parameter_config src/parameter_config.cpp) target_link_libraries(parameter_config ${catkin_LIBRARIES})
編譯項(xiàng)目
設(shè)置環(huán)境變量,讓系統(tǒng)能夠找到該工作空間
source devel/setup.bash啟動(dòng)ROS Master
roscore啟動(dòng)小海龜仿真器
rosrun turtlesim turtlesim_node啟動(dòng)自定義的節(jié)點(diǎn)
rosrun learning_parameter parameter_config用Python代碼實(shí)現(xiàn)方式
cd ~/catkin_ws/src/learning_parameter創(chuàng)建 scripts 文件夾
mkdir scripts cd scripts創(chuàng)建 parameter_config.py Python文件
touch parameter_config.py用Python修改參數(shù)的代碼:
以下代碼的功能:設(shè)置/讀取海龜例程中的參數(shù)
注意:需要將Python設(shè)置為可執(zhí)行文件。
Python代碼不需要重新編譯,可以直接執(zhí)行。
rosrun learning_parameter parameter_config.py
注意:代碼中的路徑要和 rosparam list 命令顯示的路徑要對(duì)應(yīng)。
總結(jié)
以上是生活随笔為你收集整理的ROS系统 参数的获取和设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROS系统 服务数据的定义与使用
- 下一篇: ROS系统实现 tf坐标系广播与监听