1. 程式人生 > >ROS的launch檔案常用語法

ROS的launch檔案常用語法

ROS的launch檔案常用語法

文章目錄

1. 最外圍

必須有 <launch> ... ... </launch>

2. 節點

<node 
	pkg="包名" 
	type="節點名" 
	name="對節點名重新命名,覆蓋ros::init中的名字(一般直接寫成type同名)"
	args="節點傳入引數,會直接賦值給ros::init的argv" 
	ns="把當前節點歸到一個名稱空間下">
</node>
  • 節點的話題重新命名 【topic name】
<remap from="original-name" to="new-name" />  

3. including引入其他launch檔案

用一個find檔案找到其他包的主目錄,就是cmakelist檔案的目錄

<include file="$(find package-name)/.../launch-file-name" />

4. 引數param

  • 引入引數檔案
<rosparam command="load" file="$(find rosparam)/example.yaml" />  
  • 直接設定引數
    <arg name="whitelist" default="[3, 2]"/>
  • param設定引數
    <param name="foo" value="$(arg my_foo)" />

上面的arg 變數必須對應一個<arg ... /> 標籤,arg中的引數包括 name="arg名字"default="預設值"value=“arg值”

5. 釋出tf靜態座標轉換 (尤拉角和四元數)

  • 尤拉角表示
    <node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser 40" />

    其中 args="0.0 0.0 0.0 0.0 0.0 0.0 /base_link /laser 40"中,前三個數是xyz座標,後三個是yaw pitch roll 三個角度yaw是圍繞x軸旋轉的偏航角,pitch是圍繞y軸旋轉的俯仰角,roll是圍繞z軸旋轉的翻滾角),在後面是兩個frame id,第一個是/base_link是父座標系,後一個是子座標系,最後一個引數40是period_in_ms 即40ms傳送一次。
  • 四元數表示
    static_transform_publisher的引數順序x y z qx qy qz qw frame_id child_frame_id period_in_ms
    當表示二維座標時有一個簡單的方法,繞z軸轉,則[qx qy qz qw] = [0 0 sin(a) cos(a)],哈哈,非常簡單,僅適用於二維機器人。這是一個四元數視覺化網站

參考文獻

https://www.jianshu.com/p/0130ad32a08d 
http://wiki.ros.org/roslaunch ros中launch檔案的格式