ROS机器人程序设计(原书第2版)3.9.1 使用rqt_rviz在3D世界中实现数据可视化
3.9.1 使用rqt_rviz在3D世界中實(shí)現(xiàn)數(shù)據(jù)可視化
在roscore運(yùn)行時(shí),啟動(dòng)rqt_rviz(請(qǐng)注意rviz在ROS hydro中依然有效):
? ?
我們將會(huì)看到如下圖所示的圖形化工作界面:
?
在左邊有一個(gè)Displays面板,在面板的中間有一個(gè)包含了模擬環(huán)境下不同參數(shù)項(xiàng)的樹(shù)形列表。在示例中,已經(jīng)加載了部分參數(shù)項(xiàng)。實(shí)例中的配置和布局都存儲(chǔ)在了config/example9.rviz文件中,可以通過(guò)點(diǎn)擊File | Open Config加載。
在Displays區(qū)域之下有一個(gè)Add按鈕,允許通過(guò)主題或類(lèi)型添加更多的參數(shù)項(xiàng)。同時(shí),注意到這里還有一些全局選項(xiàng),基本上是用于設(shè)定固定坐標(biāo)系的工具,因?yàn)樽鴺?biāo)系是可以移動(dòng)的。其次,還有軸(Axes)和網(wǎng)格(Grid)作為各個(gè)參數(shù)項(xiàng)的參照物。在示例中,對(duì)于example9節(jié)點(diǎn),我們將會(huì)看到標(biāo)記(Marker)和點(diǎn)云(PointCloud2)。
最后,在狀態(tài)欄上有時(shí)間相關(guān)的信息提示,以及在右側(cè)有一些菜單。Tools用于配置一些插件參數(shù),如2D Nav Goal和2D Pose Estimate主題名等。在Views目錄提供了不同查看類(lèi)型,一般而言有Orbit和TopDownOrtho就足夠了,一個(gè)用于3D查看,另一個(gè)用于2D俯視查看,其他目錄顯示了環(huán)境中一些可以選擇的元素。在頂部,有一個(gè)當(dāng)前操作模式的菜單欄,包括交互(Interact)、移動(dòng)(Move)、測(cè)量(Measure)等,以及一些插件。
現(xiàn)在運(yùn)行example9節(jié)點(diǎn):
?
在rqt_rviz中,我們將會(huì)把frame_id設(shè)置為標(biāo)記,這個(gè)標(biāo)記是固定坐標(biāo)系的坐標(biāo)標(biāo)記(frame_marker)。我們將會(huì)看到紅色方塊標(biāo)記在移動(dòng),如下圖所示:
?
類(lèi)似地,如果設(shè)置固定坐標(biāo)系為frame_pc,我們將看到一個(gè)200×100像素點(diǎn)平面所組成的點(diǎn)云,如下圖所示:
?
支持的rqt_rviz內(nèi)置類(lèi)型的參數(shù)列表包括camera和image。它們會(huì)在一個(gè)類(lèi)似于image_view的窗口中顯示。選擇camera的時(shí)候,需要對(duì)它先進(jìn)行校準(zhǔn),在使用雙目視覺(jué)圖像的時(shí)候,它允許我們覆蓋點(diǎn)云。我們同樣也可以看到激光雷達(dá)的LaserScan數(shù)據(jù),紅外/聲吶(IR/sonar)傳感器的錐狀距離數(shù)據(jù)range,以及3D傳感器例如Kinect的PointCloud2。
對(duì)于導(dǎo)航功能包集,將會(huì)在下一章進(jìn)行詳細(xì)介紹。我們會(huì)使用多種數(shù)據(jù)類(lèi)型,例如里程O(píng)dometry(畫(huà)出機(jī)器人的里程位姿),路徑Path(畫(huà)出機(jī)器人所走過(guò)的路徑),物體位姿Pose,帶有機(jī)器人位姿估計(jì)的粒子云PoseArray,使用Occupancy Grid Map(OGM)的地圖Map,以及costmaps(這是ROS hydro的Map類(lèi)型,之前是GridCell)。
在這些類(lèi)型中,需要說(shuō)明的是機(jī)器人的模型RobotModel,它能夠展示機(jī)器人組件的CAD模型,并將每個(gè)組件的坐標(biāo)系之間的轉(zhuǎn)換考慮進(jìn)去,甚至還能畫(huà)出坐標(biāo)變換(tf)樹(shù),并且在仿真環(huán)境中為坐標(biāo)系調(diào)試提供非常大的幫助。我們會(huì)在下一節(jié)展示示例。在RobotModel中,我們用機(jī)器人URDF描述中的關(guān)節(jié)繪制一條軌跡,看它們?nèi)绾坞S時(shí)間變化移動(dòng)。
基本元素也可以被表示,例如機(jī)器人足跡的Polygon、各種不同的標(biāo)記Markers通常支持基本幾何元素,如立方體、球體、線條等,甚至是交互式標(biāo)記對(duì)象InteractiveMarker。交互式標(biāo)記對(duì)象允許用戶(hù)設(shè)定標(biāo)記對(duì)象在3D環(huán)境中的位姿(位置和方向)。使用下面命令,運(yùn)行example8節(jié)點(diǎn)查看簡(jiǎn)單交互式標(biāo)記:
?
你將看到一個(gè)標(biāo)記,可以在rqt_rviz交互模式中移動(dòng)它。它的位姿可以用于修改系統(tǒng)中另一個(gè)參數(shù)的位姿,例如機(jī)器人關(guān)節(jié):
總結(jié)
以上是生活随笔為你收集整理的ROS机器人程序设计(原书第2版)3.9.1 使用rqt_rviz在3D世界中实现数据可视化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《移动优先与响应式Web设计》一1.2
- 下一篇: Bootstrap css3