當(dāng)我們拿到不同的傳感器時(shí),我們?cè)谡{(diào)試后希望將他們用ros下的rviz顯示在同一頁面下,相機(jī)(image)和單一的傳感器顯示通常比較簡(jiǎn)單,往往我們加入兩個(gè)有空間坐標(biāo)的傳感器會(huì)報(bào)錯(cuò),沒有轉(zhuǎn)換關(guān)系或者xx frame不存在。這是因?yàn)樵赗OS中,我們需要建立一個(gè)rf-tree來管理我們的傳感器坐標(biāo)使其統(tǒng)一,拿出某一點(diǎn)就可以得到其在不同坐標(biāo)系下的坐標(biāo)。往往傳感器的默認(rèn)frame都不同,這時(shí)候我們需要將其統(tǒng)一方能在同一頁面顯示。
拿到傳感器,我們運(yùn)行其結(jié)點(diǎn)/或發(fā)布,使用
rostopic list
查看當(dāng)前發(fā)布的話題,看看我們需要現(xiàn)實(shí)的話題是否已發(fā)布。
例如點(diǎn)云數(shù)據(jù),我們查找其frame_id可以通過:
rostopic ehco /xxxx | grep frame_id
這樣可以看到顯示的frame_id
顯然兩者處于不同的坐標(biāo)下未產(chǎn)生聯(lián)系,這樣自然無法顯示。
這時(shí)最簡(jiǎn)單的做法就是利用TF官方文檔說的
http://wiki.ros.org/tfhttp://wiki.ros.org/tf
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link rslidar 20
含義:
rosrun tf static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms
或者
rosrun tf static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms
這樣就可以將rslidar轉(zhuǎn)化為base_link(當(dāng)然 0 0 0 0 0 0并不是實(shí)際情況)
還可以在launch文件中添加:
<launch>
<node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="1 0 0 0 0 0 1 link1_parent link1 100" />
</launch>
我們可以使用以下指令來查看當(dāng)前的tf關(guān)系:
rosrun tf view_frames
會(huì)在當(dāng)前(terminal打開的)文件夾下生成一個(gè)frames.pdf文檔,繪制著樹狀關(guān)系。
注意:當(dāng)發(fā)生缺少yaml文件等報(bào)錯(cuò)時(shí),往往是由于安裝的python版本的問題,找到對(duì)應(yīng)的文件打開,改為對(duì)應(yīng)的python版本如 python2(若安裝的是python2.7)或python3。
使用下述命令直接查看樹狀圖與轉(zhuǎn)換關(guān)系
rosrun rqt_tf_tree rqt_tf_tree
核對(duì)樹狀關(guān)系,rslidar和base_link產(chǎn)生了聯(lián)系。
通過
rostopic echo /tf -n1
可以輸出一次的變換:
-----------------------------------------------------------------------------------------------------------------------
現(xiàn)在我們來說在rviz中顯示的問題:
1.運(yùn)行節(jié)點(diǎn)/launch文件;
2.運(yùn)行tf轉(zhuǎn)換關(guān)系;
3.打開rviz,添加tf(點(diǎn)擊add->By display type->TF),展開TF可以看到幾個(gè)frame的轉(zhuǎn)換關(guān)系,是否ok;
4.選取共有的(統(tǒng)一的)frame作為世界坐標(biāo)的Fixed Frame,完成顯示;
5.調(diào)整顯示的點(diǎn)云等大小顏色等特性,保存為.rviz配置文件以便下次方便使用。
完成顯示!
推薦學(xué)習(xí)內(nèi)容:
ROS中TF(坐標(biāo)系轉(zhuǎn)換)原理與使用 - 前路有光,初心莫忘 - 博客園
?https://www.youtube.com/watch?v=Ra-nXIfPWdg文章來源:http://www.zghlxwxcb.cn/news/detail-412513.html
https://www.youtube.com/watch?v=dBATvRhvGRI&t=2706s文章來源地址http://www.zghlxwxcb.cn/news/detail-412513.html
到了這里,關(guān)于多傳感器ROS rviz顯示,TF轉(zhuǎn)換(如雷達(dá)和激光雷達(dá))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!