日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ROS教程(四):RVIZ使用教程(详细图文)

發布時間:2024/8/1 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS教程(四):RVIZ使用教程(详细图文) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ros教程:rviz使用教程

文章目錄

  • 前言
  • 一、RVIZ介紹
    • 1.數據類型介紹
    • 2.界面介紹
  • 二、發送基礎形狀至RVIZ(C++)
    • 1.創建程序包
    • 2.創建節點
    • 3.編輯代碼如下(示例):
    • 4.編輯CMakeLists.txt文件
    • 5. 編譯源碼
    • 6.運行節點
    • 7.啟動RVIZ
  • 總結(最重要的)


前言

根據前面的教程已經學會了創建功能包,那么本篇文章主要內容則是通過節點來發布數據至RVIZ

提示:以下是本篇文章正文內容,下面案例可供參考


一、RVIZ介紹

rviz是ros的一個可視化工具,用于可視化傳感器的數據和狀態信息。
rviz支持豐富的數據類型,通過加載不同的Dispalys類型來可視化,每一個Dispaly都有一個獨特的名字。

1.數據類型介紹

常見的display類型

類型描述消息類型
Axes顯示坐標系
Markers繪制各種基本形狀(箭頭、立方體、球體、圓柱體、線帶、線列表、立方體列表、點、文本、mesh數據、三角形列表等)visualization_msgs::Marker visualization_msgs::MarkerArray
Camera打開一個新窗口顯示攝像頭圖像sensor_msgs/Image
sensor_msgs/CameraInfo
Grid顯示網格
Image打開一個新窗口顯示圖像信息sensor_msgs/Image
LaserScan將傳感器信息中的數據顯示為世界上的點、
繪制為點或立方體
sensor_msgs/LaserScan
Image顯示圖像sensor_msgs/Image
PointCloud顯示點云數據sensor_msgs/PointCloud
Odomerty顯示里程計數據nav_msgs/Odometry
PointCloud2顯示點云數據sensor_msgs/PointCloud2
RobotModel顯示機器人模型
TF顯示TF樹

2.界面介紹

RVIZ整體界面

添加顯示界面

點擊add按鈕:

然后會彈出來一個對話框:

二、發送基礎形狀至RVIZ(C++)

1.創建程序包

catkin_create_pkg using_markers roscpp visualization_msgs

2.創建節點

touch basic_shapes.cpp

具體創建程序包及節點的教程可翻閱之前的文章

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 文件,增加下面的內容在最后面:

add_executable(basic_shapes src/basic_shapes.cpp) target_link_libraries(basic_shapes ${catkin_LIBRARIES})

5. 編譯源碼

catkin_make

6.運行節點

rosrun using_markers basic_shapes

這個時候會有一句黃色的Warning提醒你沒有訂閱者,這是我們程序里輸出的提醒,不用擔心。

7.啟動RVIZ

運行命令啟動rviz

rivz

如果是第一次啟動的話,需要設置一下

設置Fixed Frame為my_frame,然后點擊Add添加一個Markers,這時候可以看到rviz顯示區域出現了代碼中設置的形狀


總結(最重要的)

以上就是本篇博客的內容了,本文僅僅簡單介紹了rviz的簡單使用,具體的使用可以看ROS官網的教程。

總結

以上是生活随笔為你收集整理的ROS教程(四):RVIZ使用教程(详细图文)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。