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整体界面
ROS教程(四):RVIZ使用教程(详细图文)_第1张图片
添加显示界面

点击add按钮:
ROS教程(四):RVIZ使用教程(详细图文)_第2张图片
然后会弹出来一个对话框:
ROS教程(四):RVIZ使用教程(详细图文)_第3张图片

二、发送基础形状至RVIZ(C++)

1.创建程序包

catkin_create_pkg using_markers roscpp visualization_msgs

2.创建节点

touch basic_shapes.cpp

具体创建程序包及节点的教程可翻阅之前的文章

3.编辑代码如下(示例):

basic_shapes.cpp

#include 
#include 
 
 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

如果是第一次启动的话,需要设置一下
ROS教程(四):RVIZ使用教程(详细图文)_第4张图片
设置Fixed Frame为my_frame,然后点击Add添加一个Markers,这时候可以看到rviz显示区域出现了代码中设置的形状


总结(最重要的)

以上就是本篇博客的内容了,本文仅仅简单介绍了rviz的简单使用,具体的使用可以看ROS官网的教程。
ROS教程(四):RVIZ使用教程(详细图文)_第5张图片
ROS教程(四):RVIZ使用教程(详细图文)_第6张图片

你可能感兴趣的:(ROS,ROS,ROS教程,RVIZ教程,rviz)