天天看點

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

T265定點中的/tf消息是誰釋出的,為什麼是/tf

可能也是因為講課,倒逼着我把這些真正弄清楚。而不是馬馬虎虎差不多就行了。

首先我看節點圖,可以确認tf消息就是攝像頭節點發出的

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

我再去realsense-ros的github裡面看,找到了一些關于tf的

publish TF from odom_frame to pose_frame.

tf的坐标變換似乎是指from odom_frame to pose_frame.   T265釋出的最原始的位置資料是  /camera/odom/sample   這個我之前是知道的。

frame是坐标系的意思。

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

,這樣就好了解上面那句話:publish TF from odom_frame to pose_frame.

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

還有我發現 px4_pos_estimator.cpp 裡訂閱雷射雷達的位置資料也是訂閱的/tf,我覺得不是巧合

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

你看我做出APMT265樹莓派無人機快六個月半年了,現在還有些東西沒有完全弄清楚,是以很多東西急不得,慢慢來,慢慢積澱。寫論文我覺得,也是,不要總是想着一下子突擊完成,一兩個月搞完,你想着怎麼六個月弄完,這樣才差不多。

這是以前弄APMT265樹莓派無人機的時候列印的/tf消息,當時還以為是位置資訊

這裡面可以看到frame_id:"camera_odom_frame"   child_frame_id:"camera_pose_frame"     是以上面說的publish TF from odom_frame to pose_frame.應該就是這個。

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

和這說的是一樣的!!!!!

https://www.cnblogs.com/sxy370921/p/11726691.html

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

當然應該是下面這種,因為最開頭有個transforms,是以是TF樹的消息類型,但是上面的解釋是可以參考的。

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

右下列印的/tf   左上列印的mavros/vision_pose/pose

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

我不明白  odom坐标系和pose坐标系的差別是什麼。

.

我搜了下确實是有odom也就是裡程計坐标系的

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

https://www.jianshu.com/p/1dc8dea89413

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

這篇文章很值得看看

https://blog.csdn.net/w383117613/article/details/46006991

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

這裡給我解答了一些疑惑,也怪不得上面有個截圖裡說  SLAM中的定位就是為了計算

tf: map->odom

到這裡就會有疑惑,odom和map兩個坐标系不應該就重合了嗎?

答:在機器人剛啟動的時候,這兩個坐标系的确是重合的,但是跑遠了之後,由于裡程計的誤差,會使得odom坐标系與global map坐标系的原點不重合,(個人了解是,按照裡程計給出的機器人目前位姿,然後根據這個資料傳回,最後機器人傳回的地方并非一開始啟動時的原點)

https://blog.csdn.net/sinat_16643223/article/details/113901802

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

我感覺那個pose坐标系可能就是他們說的base_link坐标系

https://blog.csdn.net/dddxxxx/article/details/93472584

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

我看了下這個似乎SLAM子產品都會釋出/tf ????????

https://xiaohu.blog.csdn.net/article/details/100165692

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

這篇似乎說出了點感覺。

https://blog.csdn.net/sinat_16643223/article/details/113915745

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

我發現vision_to_mavros那裡其實已經有了詳細的解釋。

https://github.com/thien94/vision_to_mavros

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

https://blog.csdn.net/flyinsilence/article/details/51854123

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

我的這篇博文看一下,後來的很多總結寫到這裡面去了。

https://blog.csdn.net/sinat_16643223/article/details/113919496

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!
*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

還有我發現普羅米修斯裡面px4_pos_eatimate閱雷射雷達的也是訂閱的/tf,這裡面應該有一定道理。可能都是用/tf來表示的

https://gitee.com/maxibooksiyi/Prometheus/blob/master/Modules/control/src/px4_pos_estimator.cpp

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!
*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!
*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!
*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

 https://blog.csdn.net/qq_38649880/article/details/88372390

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

https://blog.csdn.net/xiekaikaibing/article/details/80118134

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

下面是不是可以了解為,依賴于傳感器進行行動的地方都需要坐标變換,最基本的可能就是傳感器自身的坐标系和世界坐标系。這裡面有一句說得很好,傳感器資料,例如來自相機或雷射雷達,是根據傳感器自己的坐标系來擷取的,而這些資料必須要在另一個坐标系(例如世界坐标系或機器人坐标系)中進行解釋。

仔細想想也是,每個傳感器都有自己的坐标系。主要是我們目前用到的傳感器,相機也好,雷射雷達也好,其實是和無人機固定在一起的,也就是相機的坐标系就可以看作無人機的坐标系,并不像機械臂那麼複雜。是以下面camera/imu/body_link是放在一起說的。

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!
*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!
*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!
*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

下面拍自《ROS機器人程式設計原理與應用》

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

這篇文章也說清楚了,和我了解的應該是一個意思,和上面資料解釋的應該也是一個意思!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

這裡面很好地說明了一點,就是一個位姿資訊是包含了位置和角度(四元數/旋轉)的,而兩個坐标間的變換也是乘一個位置+角度(四元素)【這才是最妙的地方,真正從根本上說明了這兩者是一個東西】,這也是可以解釋為什麼T265釋出的位置資訊和/tf資訊的内容是一模一樣的,一個geometry_msgs/PoseStamped類型的話題也就是包含位置和四元素(https://blog.csdn.net/sinat_16643223/article/details/114542703)

是以local_position/pose既可以以geometry_msgs/PoseStamped類型類型發出去也可以以/TF話題消息發出去

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

https://www.jianshu.com/p/bedf90699551

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!

是以這列印的三種話題消息的内容都是一模一樣的

https://blog.csdn.net/sinat_16643223/article/details/114572760

*T265定點中的/tf消息是誰釋出的,為什麼是/tf(後來發現雷射雷達的cartographer也是釋出/tf),位姿和坐标系變換都是用位置+四元數(歐拉角/旋轉)表示的!!!