ROS教程(四):RVIZ使用教程(详细图文)
ros教程:rviz使用教程
文章目錄
- 前言
- 一、RVIZ介紹
- 1.數(shù)據(jù)類型介紹
- 2.界面介紹
- 二、發(fā)送基礎(chǔ)形狀至RVIZ(C++)
- 1.創(chuàng)建程序包
- 2.創(chuàng)建節(jié)點
- 3.編輯代碼如下(示例):
- 4.編輯CMakeLists.txt文件
- 5. 編譯源碼
- 6.運行節(jié)點
- 7.啟動RVIZ
- 總結(jié)(最重要的)
前言
根據(jù)前面的教程已經(jīng)學(xué)會了創(chuàng)建功能包,那么本篇文章主要內(nèi)容則是通過節(jié)點來發(fā)布數(shù)據(jù)至RVIZ
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、RVIZ介紹
rviz是ros的一個可視化工具,用于可視化傳感器的數(shù)據(jù)和狀態(tài)信息。
rviz支持豐富的數(shù)據(jù)類型,通過加載不同的Dispalys類型來可視化,每一個Dispaly都有一個獨特的名字。
1.數(shù)據(jù)類型介紹
常見的display類型
| Axes | 顯示坐標(biāo)系 | – |
| Markers | 繪制各種基本形狀(箭頭、立方體、球體、圓柱體、線帶、線列表、立方體列表、點、文本、mesh數(shù)據(jù)、三角形列表等) | visualization_msgs::Marker visualization_msgs::MarkerArray |
| Camera | 打開一個新窗口顯示攝像頭圖像 | sensor_msgs/Image sensor_msgs/CameraInfo |
| Grid | 顯示網(wǎng)格 | – |
| Image | 打開一個新窗口顯示圖像信息 | sensor_msgs/Image |
| LaserScan | 將傳感器信息中的數(shù)據(jù)顯示為世界上的點、 繪制為點或立方體 | sensor_msgs/LaserScan |
| Image | 顯示圖像 | sensor_msgs/Image |
| PointCloud | 顯示點云數(shù)據(jù) | sensor_msgs/PointCloud |
| Odomerty | 顯示里程計數(shù)據(jù) | nav_msgs/Odometry |
| PointCloud2 | 顯示點云數(shù)據(jù) | sensor_msgs/PointCloud2 |
| RobotModel | 顯示機器人模型 | – |
| TF | 顯示TF樹 | – |
2.界面介紹
RVIZ整體界面
添加顯示界面
點擊add按鈕:
然后會彈出來一個對話框:
二、發(fā)送基礎(chǔ)形狀至RVIZ(C++)
1.創(chuàng)建程序包
catkin_create_pkg using_markers roscpp visualization_msgs2.創(chuàng)建節(jié)點
touch basic_shapes.cpp具體創(chuàng)建程序包及節(jié)點的教程可翻閱之前的文章
3.編輯代碼如下(示例):
basic_shapes.cpp
#include <ros/ros.h> #include <visualization_msgs/Marker.h>int main( int argc, char** argv ){ros::init(argc, argv, "basic_shapes");ros::NodeHandle n;ros::Rate r(1);ros::Publisher marker_pub = n.advertise<visualization_msgs::Marker>("visualization_marker", 1);uint32_t shape = visualization_msgs::Marker::CUBE;while (ros::ok()){visualization_msgs::Marker marker;marker.header.frame_id = "/my_frame";marker.header.stamp = ros::Time::now();marker.ns = "basic_shapes";marker.id = 0;marker.type = shape;marker.action = visualization_msgs::Marker::ADD;marker.pose.position.x = 0;marker.pose.position.y = 0;marker.pose.position.z = 0;marker.pose.orientation.x = 0.0;marker.pose.orientation.y = 0.0;marker.pose.orientation.z = 0.0;marker.pose.orientation.w = 1.0;marker.scale.x = 1.0;marker.scale.y = 1.0;marker.scale.z = 1.0;marker.color.r = 0.0f;marker.color.g = 1.0f;marker.color.b = 0.0f;marker.color.a = 1.0;marker.lifetime = ros::Duration();while (marker_pub.getNumSubscribers() < 1){if (!ros::ok()){return 0;}ROS_WARN_ONCE("Please create a subscriber to the marker");sleep(1);}marker_pub.publish(marker);r.sleep();} }4.編輯CMakeLists.txt文件
編輯 using_markers package里面的CMakeLists.txt 文件,增加下面的內(nèi)容在最后面:
add_executable(basic_shapes src/basic_shapes.cpp) target_link_libraries(basic_shapes ${catkin_LIBRARIES})5. 編譯源碼
catkin_make6.運行節(jié)點
rosrun using_markers basic_shapes這個時候會有一句黃色的Warning提醒你沒有訂閱者,這是我們程序里輸出的提醒,不用擔(dān)心。
7.啟動RVIZ
運行命令啟動rviz
rivz如果是第一次啟動的話,需要設(shè)置一下
設(shè)置Fixed Frame為my_frame,然后點擊Add添加一個Markers,這時候可以看到rviz顯示區(qū)域出現(xiàn)了代碼中設(shè)置的形狀
總結(jié)(最重要的)
以上就是本篇博客的內(nèi)容了,本文僅僅簡單介紹了rviz的簡單使用,具體的使用可以看ROS官網(wǎng)的教程。
總結(jié)
以上是生活随笔為你收集整理的ROS教程(四):RVIZ使用教程(详细图文)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派安装ros教程
- 下一篇: WIN10环境JAVA的JDK环境变量设