日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【RK3399Pro学习笔记】十二、ROS参数的使用与编程方法

發(fā)布時間:2023/12/9 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【RK3399Pro学习笔记】十二、ROS参数的使用与编程方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 創(chuàng)建功能包
  • 參數(shù)命令行使用
    • YAML參數(shù)文件
    • rosparam
  • C++
    • 編寫程序
    • 配置CMakeLists.txt
    • 編譯并運行
  • python
    • 編寫程序
    • 運行

平臺:華碩 Thinker Edge R 瑞芯微 RK3399Pro
固件版本:Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615


記錄自【古月居】古月·ROS入門21講 | 一學(xué)就會的ROS機器人入門教程 —— 古月居GYH P16 16.參數(shù)的使用與編程方法

創(chuàng)建功能包

cd ~/catkin_workspace/src catkin_create_pkg learning_parameter roscpp rospy std_srvs

參數(shù)命令行使用

YAML參數(shù)文件

background_b: 255 background_g: 86 background_r: 69 rosdistro: 'lunar' roslaunch: uris: {host_hcx_vpc__43763: 'http://hcx-vpc:43763/'} rosversion: '1.14.31' run_id: 077058de-a38b-11e9-818b-000c29d22e4d

rosparam

# 新建一個終端 roscore# 新建一個終端 rosrun turtlesim turtlesim_node # 新建一個終端 rosparam


列出當(dāng)前參數(shù)

rosparam list

顯示某個參數(shù)值

rosparam get param_key


設(shè)置某個參數(shù)值

rosparam set param_key param_value



保存參數(shù)到文件

rosparam dump file_name

從文件讀取參數(shù)

rosparam load file_name

刪除參數(shù)

rosparam delete param_key

C++

編寫程序

nano ~/catkin_workspace/src/learning_parameter/src/parameter_config.cpp /*********************************************************************** Copyright 2020 GuYueHome (www.guyuehome.com). ***********************************************************************//*** 該例程設(shè)置/讀取海龜例程中的參數(shù)*/ #include <string> #include <ros/ros.h> #include <std_srvs/Empty.h>int main(int argc, char **argv) {int red, green, blue;// ROS節(jié)點初始化ros::init(argc, argv, "parameter_config");// 創(chuàng)建節(jié)點句柄ros::NodeHandle node;// 讀取背景顏色參數(shù)ros::param::get("/background_r", red);ros::param::get("/background_g", green);ros::param::get("/background_b", blue);ROS_INFO("Get Backgroud Color[%d, %d, %d]", red, green, blue);// 設(shè)置背景顏色參數(shù)ros::param::set("/background_r", 255);ros::param::set("/background_g", 255);ros::param::set("/background_b", 255);ROS_INFO("Set Backgroud Color[255, 255, 255]");// 讀取背景顏色參數(shù)ros::param::get("/background_r", red);ros::param::get("/background_g", green);ros::param::get("/background_b", blue);ROS_INFO("Re-get Backgroud Color[%d, %d, %d]", red, green, blue);// 調(diào)用服務(wù),刷新背景顏色ros::service::waitForService("/clear");ros::ServiceClient clear_background = node.serviceClient<std_srvs::Empty>("/clear");std_srvs::Empty srv;clear_background.call(srv);sleep(1);return 0; }

配置CMakeLists.txt

nano ~/catkin_workspace/src/learning_parameter/CMakeLists.txt

添加

add_executable(parameter_config src/parameter_config.cpp) target_link_libraries(parameter_config ${catkin_LIBRARIES})

編譯并運行

cd ~/catkin_workspace catkin_make# 新建一個終端 source ~/catkin_workspace/devel/setup.bash roscore # 新建一個終端 source ~/catkin_workspace/devel/setup.bash rosrun turtlesim turtlesim_node # 新建一個終端 source ~/catkin_workspace/devel/setup.bash rosrun learning_parameter parameter_config

python

編寫程序

cd ~/catkin_workspace/src/learning_parameter mkdir scripts nano ~/catkin_workspace/src/learning_parameter/scripts/parameter_config.py #!/usr/bin/env python # -*- coding: utf-8 -*-######################################################################## #### Copyright 2020 GuYueHome (www.guyuehome.com). ### ######################################################################### 該例程設(shè)置/讀取海龜例程中的參數(shù)import sys import rospy from std_srvs.srv import Emptydef parameter_config():# ROS節(jié)點初始化rospy.init_node('parameter_config', anonymous=True)# 讀取背景顏色參數(shù)red = rospy.get_param('/background_r')green = rospy.get_param('/background_g')blue = rospy.get_param('/background_b')rospy.loginfo("Get Backgroud Color[%d, %d, %d]", red, green, blue)# 設(shè)置背景顏色參數(shù)rospy.set_param("/background_r", 255);rospy.set_param("/background_g", 255);rospy.set_param("/background_b", 255);rospy.loginfo("Set Backgroud Color[255, 255, 255]");# 讀取背景顏色參數(shù)red = rospy.get_param('/background_r')green = rospy.get_param('/background_g')blue = rospy.get_param('/background_b')rospy.loginfo("Get Backgroud Color[%d, %d, %d]", red, green, blue)# 發(fā)現(xiàn)/spawn服務(wù)后,創(chuàng)建一個服務(wù)客戶端,連接名為/spawn的servicerospy.wait_for_service('/clear')try:clear_background = rospy.ServiceProxy('/clear', Empty)# 請求服務(wù)調(diào)用,輸入請求數(shù)據(jù)response = clear_background()return responseexcept rospy.ServiceException, e:print "Service call failed: %s"%eif __name__ == "__main__":parameter_config()

運行

sudo chmod +x ~/catkin_workspace/src/learning_parameter/scripts/parameter_config.py# 新建一個終端 source ~/catkin_workspace/devel/setup.bash roscore # 新建一個終端 source ~/catkin_workspace/devel/setup.bash rosrun turtlesim turtlesim_node # 新建一個終端 source ~/catkin_workspace/devel/setup.bash rosrun learning_parameter parameter_config.py

總結(jié)

以上是生活随笔為你收集整理的【RK3399Pro学习笔记】十二、ROS参数的使用与编程方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。