ros教程:rviz使用教程


前言

根据前面的教程已经学会了创建功能包,那么本篇文章主要内容则是通过节点来发布数据至RVIZ

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


一、RVIZ介绍

rviz是ros的一个可视化工具,用于可视化传感器的数据和状态信息。
rviz支持丰富的数据类型,通过加载不同的Dispalys类型来可视化,每一个Dispaly都有一个独特的名字。

1.数据类型介绍

常见的display类型

类型 描述 消息类型
Axes 显示坐标系
Gamera 从相机视角显示图像 sensor_msgs/Image sensor_msgs/CameraInfo
Grid 显示网格
Image 显示图像 sensor_msgs/Image
LaserScan 显示激光雷达数据 sensor_msgs/LaserScan
Image 显示图像 sensor_msgs/Image
PointClode2 显示点云数据 sensor_msgs/PointCloud2
Odomerty 显示里程计数据 nav_msgs/Odometry
PointClode2 显示点云数据 sensor_msgs/PointCloud2
RobotModel 显示机器人模型
PointClode2 显示TF树

2.界面介绍

RVIZ整体界面
RVIZ整体界面
添加显示界面

点击add按钮:
点击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

如果是第一次启动的话,需要设置一下
设置rviz
设置Fixed Frame为my_frame,然后点击Add添加一个Markers,这时候可以看到rviz显示区域出现了代码中设置的形状


总结(最重要的)

以上就是本篇博客的内容了,本文仅仅简单介绍了rviz的简单使用,具体的使用可以看ROS官网的教程
一键三连
来个一键三连吧