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