ROS學習(三) 使用引數以及相應的 .launch 檔案編寫
阿新 • • 發佈:2019-01-03
ROS學習(三)
使用引數以及相應的 .launch 檔案編寫
ZSCSEU 東南大學
前言:
這是我的第三個學習筆記,今天主要複習瞭如何在ROS中使用引數,並編寫相應的標頭檔案。
在此之前,我們先複習一下rospy裡關於引數的函式和 .launch 檔案的一般編寫步驟。
1.rospy
■得到/設定一個全域性引數
rospy.get_param('/global_param_name')
rospy.set_param('some_numbers', [1., 2., 3., 4.])
rospy.set_param('~private_bar', 1+2)
■得到/設定父空間的一個引數
rospy.get_param('param_name')
rospy.set_param('truth', True)
■得到/設定一個私有引數
rospy.get_param('~private_param_name')
rospy.set_param('~private_bar', 1+2)
■刪除引數
rospy.delete_param('to_delete')
2.launch檔案的編寫
❀標籤
☺<node> 啟動一個節點
☺ <param> 設定引數伺服器的引數
☺ <remap> 重對映
☺ <machine> 宣告啟動要使用的機器
☺ <include> 包含的launch檔案
☺ <group> 共享一個名稱空間或者對映的元素組
☺ <arg> 宣告引數
❀ node屬性
pkg 節點包
type節點型別,必須要有對應的可執行檔案
name節點名稱
arg 傳遞到節點的引數
respawn 自動重啟
3.接下來是程式碼:
#!/usr/bin/env python # -*- coding: utf-8 -*- import rospy from std_msgs.msg import Int64 class para: def __init__(self): rospy.init_node('param_using',anonymous=False) rospy.on_shutdown(self.shutdown) r=rospy.Rate(10) rospy.loginfo('Using paramter ready... ...') self.ax=rospy.get_param('~g1') self.bx=rospy.get_param('~g2') self.out() #rospy.set_param('~g3',self.ax+self.bx) self.cx=rospy.get_param('~g3') print self.cx def out(self): a=self.ax b=self.bx c=a+b rospy.set_param('~g3',int(c)) def shutdown(self): rospy.loginfo('stopping...') rospy.sleep(1) if __name__=='__main__': try: para() rospy.spin() except: rospy.loginfo('Program error!')
4.對應的launch檔案:
<launch>
<node pkg="beginner_test" type="use_param.py" name="param_using" output="screen" respawn="true" >
<param name="g1" value="3" type="int" />
<param name="g2" value="4" type="int" />
<param name="g3" value="8" type="int" />
</node>
</launch>