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

2023-05-16

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整体界面
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官网的教程。
一键三连
来个一键三连吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS教程(四):RVIZ使用教程(详细图文) 的相关文章

随机推荐

  • 全局变量-函数内部不允许修改局部变量的值

    全局变量 num 61 10 def demo1 希望修改全局变量的值 在 python 中 xff0c 是不允许直接修改全局变量的值 如果使用赋值语句 xff0c 会在函数内部 xff0c 定义一个局部变量 num 61 99 print
  • Docker镜像仓库

    Docker镜像仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现 官网地址 xff1a Docker Hub 简化版镜像仓库 Docker官方的Docker Registry是一个基础版本的Docker镜像
  • Intel 深度摄像D435i 的标定

    这个官方的标定链接 xff0c 先下载这个的pdf 文件在本地容易学习 xff1a https www intel com content www us en support articles 000032303 emerging tech
  • 树莓派Raspberry Pi上安装intel realsense 深度摄像头D435i

    全部按照官方 xff1a https github com IntelRealSense librealsense blob master doc installation raspbian md 更新系统到最新 xff0c 然后再启动 x
  • ROS应用开发入门 服务数据的定义和使用

    ROS是机器人操作系统的简称 xff0c 本文介绍ROS应用开发入门 xff0c 服务数据的定义和使用 客户端和服务端 之间通讯都使用服务数据 service data 本文先定义一个服务数据 xff0c 编译成功后 xff0c 用一个服务
  • ROS应用开发入门 tf 坐标系广播与监听的编程(python)

    ROS是机器人操作系统的简称 xff0c 本文介绍ROS应用开发入门 xff0c TF坐标系广播与监听的编程 小乌龟仿真中有2只乌龟 xff0c 键盘控制第1只乌龟走动 xff0c 2只乌龟都都广播自己的坐标 监听器听取2个乌龟的坐标 xf
  • 计算机保研面试常见问题(408数据结构简答题)

    1 什么是时间复杂度 xff1f O xff08 n xff09 的O代表了什么 xff1f 答 xff1a 时间复杂度是指执行算法所需要的计算工作量 xff0c 可以用于描述一个程序的规模 O xff08 n xff09 中的O表示的是最
  • 计算机保研面试常见问题(408操作系统简答题)

    1 操作系统的特点和功能是什么 xff1f 答 xff1a 操作系统的特点是并发 共享 虚拟 异步 其中 xff0c 并发和共享是操作系统主要的特点 操作系统的功能主要包括 xff1a 处理机管理 存储器管理 设备管理和文件管理等 操作系统
  • 计算机保研面试常见问题(408计算机网络简答题)

    1 能介绍一下OSI七层模型各层之间的功能与对应的协议吗 xff1f 答 xff1a OSI七层模型自底向上依次是 xff1a 物理层 数据链路层 网络层 运输层 会话层 表示层 应用层 各层的功能与相应的协议有 xff1a 物理层 xff
  • 从高考到程序员

    记得当年进入考场的时候也是志气满满 xff0c 心里念叨着一定要考上自己理想的大学 xff0c 光宗耀祖 当时坐在学校安排的bus上向考场的方向行进 xff0c 看到路边的交警叔叔 xff0c 情不自禁的喊了一声 xff0c 交警大哥辛苦了
  • 【姿态估计】Pose estimation algorithm 之 Robust Planar Pose (RPP)algorithm

    The RPP algorithm gives a more stable tracking less jitter than ARToolKit 39 s pose estimation algorithm The robust pose
  • STM32中,关于中断函数调用全局变量的问题

    本人菜鸟小白一枚 xff0c 第一次记录自己在学习中遇到的问题 xff0c 也当是与各位交流交流 首先是问题的描述 xff1a 硬件单片机型号 xff0c STM32F103VET6 xff0c IDE xff1a keil 5 想通过它实
  • 关于FreeRTOS操作系统遇到的一些小问题

    1 故障描述 今天在学习FreeRTOS操作系统关于计数量信号实验这一块的时候遇到了一个非常有意思的实验现象 就是程序任务的启动流程都是设置正确的 xff0c 但是两任务会有一个任务进不去 程序代码如下 include 34 bsp con
  • geometry_msgs::PointStamped

    geometry msgs PointStamped geometry msgs PointStamped File geometry msgs PointStamped msg PointStamped代表了一个带有参考坐标系和时间戳的点
  • 2030年的人工智能与生活(AI and Life in 2030)

    作者 xff1a Anqi 链接 xff1a https zhuanlan zhihu com p 22308870 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处 第一部分 xff1
  • FreeRTOS学习-day01

    FreeRTOS学习 day00 xff08 废话篇 xff09 书籍是 xff1a 使用两本书 正点原子 和 野火 野火 FreeRTOS 内核实现与应用开发实战 基于STM32 教程 正点 FreeRTOS源码与应用 STM32F1 F
  • 要写好综述类论文?这几个点你需要注意

    一 引 言 不管是哪种学科的哪种研究 xff0c 文献综述必不可少 文献综述具有承上启下的作用 xff0c 是学术研究和学术论文写作的一个重要环节 通过文献综述 xff0c 我们可以了解相关领域的研究现状 xff0c 在前人研究的基础上确定
  • 文献综述难点解析

    文献综述难在三点 xff1a 在研究的不同阶段 xff0c 读文献的目的是不同的 xff0c 如何搜索 如何选择文献 如何阅读 如何做笔记等的策略也是不同的 xff0c 需要我们不断换挡 xff1b 综合 xff08 synthesizin
  • gitee团队合作,上传文件到别人的Gitee仓库

    首先要确保在别人的Gitee项目中 项目创建人可以通过邀请拉其他人进入Gitee项目中 下面开始上传 第一步 xff0c 在任意位置 xff0c 基本上选择桌面 新建一个文件夹 xff0c 在里面点击右键 xff0c 选择 Git Bash
  • ROS教程(四):RVIZ使用教程(详细图文)

    ros教程 xff1a rviz使用教程 文章目录 前言一 RVIZ介绍1 数据类型介绍2 界面介绍 二 发送基础形状至RVIZ xff08 C 43 43 xff09 1 创建程序包2 创建节点3 编辑代码如下 xff08 示例 xff0