ROS坐标系统,常见的坐标系和其含义
常見的坐標系
在使用ROS進行定位導航等操作時,我們經常會遇到各種坐標系。每種坐標系都有明確的含義。理論上坐標系的名稱可以是隨意的,但是為了方便不同的軟件間共享坐標信息,ROS定義了幾個常見的坐標系。
1.base_link
base_link坐標系和機器人的底盤直接連接。其具體位置和方向都是任意的。對于不同的機器人平臺,底盤上會有不同的參考點。不過ROS也給了推薦的坐標系取法。
x 軸指向機器人前方
y 軸指向機器人左方
z 軸指向機器人上方
2.odom
odom是一個固定在環境中的坐標系也就是world-fixed。它的原點和方向不會隨著機器人運動而改變。但是odom的位置可以隨著機器人的運動漂移。漂移導致odom不是一個很有用的長期的全局坐標。然而機器人的odom坐標必須保證是連續變化的。也就是在odom坐標系下機器人的位置必須是連續變化的,不能有突變和跳躍。
在一般使用中odom坐標系是通過里程計信息計算出來的。比如輪子的編碼器或者視覺里程計算法或者陀螺儀和加速度計。odom是一個短期的局域的精確坐標系。但是卻是一個比較差的長期大范圍坐標。
3.map
map和odom一樣是一個固定在環境中的世界坐標系。map的z軸是向上的。機器人在map坐標系下的坐標不應該隨著時間漂移。但是map坐標系下的坐標并不需要保證連續性。也就是說在map坐標系下機器人的坐標可以在任何時間發生跳躍變化。
一般來說map坐標系的坐標是通過傳感器的信息不斷的計算更新而來。比如激光雷達,視覺定位等等。因此能夠有效的減少累積誤差,但是也導致每次坐標更新可能會產生跳躍。
map坐標系是一個很有用的長期全局坐標系。但是由于坐標會跳躍改變,這是一個比較差的局部坐標系(不適合用于避障和局部操作)。
坐標系的約定
在非結構化的環境中(比如開放環境),如果我們要定義一個全球坐標系
如果在開發中這個約定不能完全保證,也要求盡量滿足。比如對于沒有GPS,指南針等傳感器的機器人,仍然可以保證坐標系z軸向上的約定。如果有指南針傳感器,這樣就能保證x和y軸的初始化方向。
在結構化的環境中(比如室內),在定義坐標系時和環境保持對應更有用。比如對于有平面圖的建筑,坐標系可以和平面圖對應。類似的對于室內環境地圖可以和建筑物的層相對應。對于有多層結構的建筑物,對每一層單獨有一個坐標系也是合理的。
4.earth
這個坐標系是為了多個機器人相互交互而設計的。當有多個機器人的時候,每個機器人都有自己的map坐標系,他們之間的map坐標系并不相同。如果想要在不同的機器人間共享數據,則需要這個坐標系來進行轉化。
如果map坐標系是一個全局坐標系,那么map到earth坐標系的變化可以是一個靜態變換。如果不是的話,就要每次計算map坐標系的原點和方向。
在剛啟動的時候map坐標系的全局位置可能是不知道的。這時候可以先不發布到earth的變換,直到有了比較精確的全局位置。
坐標系之間的關系
坐標系之間的關系可以用樹圖的方式表示。每一個坐標系只能有一個父坐標系和任意多個子坐標系。
earth -> map -> odom -> base_link
按照之前的說明,odom和map都應該連接到base_link坐標系。但是這樣是不允許的,因為每一個坐標系只能有一個父坐標系。
額外的中間坐標系
這個圖只表示了最少的坐標系。在保證基本的結構不變的情況下可以在其中加入中間的坐標系以提供額外的功能。
多機器人坐標系的例子
earth --> map_1 --> odom_1 --> base_link1
earth --> map_2 --> odom_2 --> base_link2
坐標系變換的計算
odom到base_link的變換由里程計數據源中的一個發布
map到base_link通過定位組件計算得出。但是定位組件并不發布從map到base_link的變換。它首先獲取odom到base_link的變換然后利用定位信息計算出map到odom的變換。
earth到map的變換是根據map坐標系選取所發布的一個靜態變換。如果沒有設置,那么就會使用機器人的初始位置作為坐標原點。
Map之間的切換
如果機器人的運動范圍很大,那么極有可能是要切換地圖的。在室內環境下,在不同的建筑物中,和不同的樓層地圖都會不同。
在不同的地圖間切換的時候,定位組件要恰當的把odom的parent替換成新的地圖。主要是map到base_link之間的變換要選取恰當的地圖,然后在轉換成map到odom之間的變換。
odom坐標系的連續性
在切換地圖的時候,odom坐標系不應該受到影響。odom坐標系要保證連續性。可能影響連續性的情況包括進出電梯,機器人自身沒有運動,但是周圍環境發生很大的變化。還有可能由于運動距離太遠,造成數據溢出。這些都要特殊進行處理。
總結
以上是生活随笔為你收集整理的ROS坐标系统,常见的坐标系和其含义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 芝麻信用分申请信用卡额度多少
- 下一篇: 一步步编写操作系统 53 任务状态段TS