ROS導航中 的位姿描述

轉載出處 :http://blog.csdn.net/u013453604/article/details/47320237


補充:

turtlebot包如果沒有安裝成功或者文件夾做了改動運行不起來需要重裝就需要uninstall turtlebot了,wiki上找到的說法是:

If you ever need to uninstall, simple rm -rf /opt/turtlebot will do the trick.

不過這是groovy版本下的卸載

http://wiki.ros.org/turtlebot/Tutorials/groovy/Source%20Installation


在ROSwiki中有urdf文件的寫法如下
wiki:Create your own urdf file

<code class="language-xml hljs  has-numbering">...
 <span class="hljs-tag"><<span class="hljs-title">joint</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"joint2"</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"continuous"</span>></span>
   <span class="hljs-tag"><<span class="hljs-title">parent</span> <span class="hljs-attribute">link</span>=<span class="hljs-value">"link1"</span>/></span>
   <span class="hljs-tag"><<span class="hljs-title">child</span> <span class="hljs-attribute">link</span>=<span class="hljs-value">"link3"</span>/></span>
   <span class="hljs-tag"><<span class="hljs-title">origin</span> <span class="hljs-attribute">xyz</span>=<span class="hljs-value">"-2 5 0"</span> <span class="hljs-attribute">rpy</span>=<span class="hljs-value">"0 0 1.57"</span> /></span>
 <span class="hljs-tag"></<span class="hljs-title">joint</span>></span></code>

在ROS中`rpy’對應的分別是繞X,Y,Z軸旋轉的角度(弧度單位),xyz對應的是原點座標。
這跟譚明的《先進機器人控制》定義的RPY角不太一樣,書中定義的RPY角分別是在笛卡爾座標系的基礎上先繞Z軸旋轉角度ψ,再繞新的Y軸旋轉角度θ,再繞新的X軸旋轉角度φ
所以我認爲橫滾(roll)、俯仰(pitch)、偏轉(yaw)的位姿描述方式側重的應該是真實環境中的姿態,比如橫滾就是實際上的水平翻滾,由於通常我們把飛機機身所在方向定義爲X軸、相機機身方向定義爲X軸,所以這個橫滾就成了繞X軸旋轉,如果機身方向被定義爲Z軸,那就是繞Z軸旋轉了。
參考閱讀博客:
理解傳說中的roll、yaw、pitch 

一般理解的roll,yaw,pitch

wiki中關於旋轉矩陣的解釋
動態實例
* roll:繞x軸
* pitch:繞y軸
* yaw:繞z軸

攝像機的roll,yaw,pitch

手機加速計的roll,yaw,pitch

  • roll:繞着垂直於手機屏幕的軸旋轉
  • yaw:繞着手機的向上方向旋轉
  • pitch:改變手機的俯仰

總結

從攝像機roll,yaw,pitch的示意圖中,我們看到並不是說 roll:就是繞x軸,yaw就是繞y軸,pitch就是繞z軸。

比如一般情況下,攝像機的鏡頭朝向一般都被定爲z軸。

那到底是怎麼回事呢?

我目測要從roll,yaw,pitch,這三個詞的含義來看。

  • roll: vt. 卷;滾動,轉動;輾
  • yaw: v.(火箭、飛機、宇宙飛船等)偏航
  • pitch:vi. 傾斜;投擲;搭帳篷;墜落

爲了不再將這三個詞和x,y,z牽扯起來,我們只使用描述性的語言。

  • roll的意思是翻滾,中文中飛機的翻滾是什麼,就是繞着機身所在的那個軸。
  • yaw:是偏航的意思,如果要改變航向,飛機必定是繞着重力方向爲軸。
  • pitch:有傾斜、墜落的意思。飛機在墜落時,必定會一頭栽下去,以翅膀所在的直線爲軸。

現在把攝像機看成一個飛機,鏡頭朝向就是飛機頭的朝向,是不是一樣?



pitch yaw roll是什麼 

三維空間的右手笛卡爾座標如圖1所示。

在航空中,pitch, yaw, roll如圖2所示。

pitch是圍繞X軸旋轉,也叫做俯仰角,如圖3所示。

yaw是圍繞Y軸旋轉,也叫偏航角,如圖4所示。

roll是圍繞Z軸旋轉,也叫翻滾角,如圖5所示。



圖2

                                    圖3


                                                圖4



                                                         圖5


維基百科:旋轉矩陣
在ROSWIKI中我找到了準確的描述:
6.3 static_transform_publisher

<code class="language-xml hljs  has-numbering"><strong><span style="font-size:18px;color:#ff0000;">static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms</span></strong>
</code><ul class="pre-numbering"><li>
</li></ul>

Publish a static coordinate transform to tf using an x/y/z offset in meters and yaw/pitch/roll in radians. (yaw is rotation about Z, pitch is rotation about Y, and roll is rotation about X). The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.

<code class="hljs perl has-numbering"><span style="font-size:18px;color:#ff0000;">static_transform_publisher <span class="hljs-keyword">x</span> <span class="hljs-keyword">y</span> z <span class="hljs-keyword">qx</span> qy qz <span class="hljs-keyword">qw</span> frame_id child_frame_id  period_in_ms</span></code>
</pre><p>Publish a static coordinate transform to tf using an x/y/z offset in meters and quaternion. The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.static_transform_publisher is designed both as a command-line tool for manual use, as well as for use within roslaunch files for setting static transforms. For example:</p><pre class="prettyprint" name="code"><code class="hljs xml has-numbering"><span class="hljs-tag"><<span class="hljs-title">launch</span>></span>
<span class="hljs-tag"><<span class="hljs-title">node</span> <span class="hljs-attribute">pkg</span>=<span class="hljs-value">"tf"</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"static_transform_publisher"</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"link1_broadcaster"</span> <span class="hljs-attribute">args</span>=<span class="hljs-value">"1 0 0 0 0 0 1 link1_parent link1 100"</span> /></span>
<span class="hljs-tag"></<span class="hljs-title">launch</span>></span></code>
發佈了21 篇原創文章 · 獲贊 33 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章