ROS的launch檔案常用語法
阿新 • • 發佈:2018-11-20
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軸轉a°
,則[qx qy qz qw] = [0 0 sin(a) cos(a)]
,哈哈,非常簡單,僅適用於二維機器人。這是一個四元數視覺化網站 。
參考文獻
https://www.jianshu.com/p/0130ad32a08d
http://wiki.ros.org/roslaunch ros中launch檔案的格式