当前位置: 首页 > news >正文

ROS从入门到精通2-6:Rviz可视化进阶(画坐标轴、直线、平面、圆柱等)

目录

  • 0 专栏介绍
  • 1 Rviz可视化
  • 2 环境配置
  • 3 使用方法
  • 4 测试用例

0 专栏介绍

本专栏旨在通过对ROS的系统学习,掌握ROS底层基本分布式原理,并具有机器人建模和应用ROS进行实际项目的开发和调试的工程能力。

🚀详情:《ROS从入门到精通》


1 Rviz可视化

ROS提供了三维可视化工具Rviz,用于可视化传感器的数据和状态信息。在Rviz中可以通过图形化的方式,实时显示机器人传感器的信息、机器人的运动状态、周围环境的变化等。

Rviz的基础操作详见:

  • ROS从入门到精通2-1:机器人3D可视化工具——Rviz
  • ROS从入门到精通2-4:Rviz插件制作实战案例(以多点连续导航插件为例)

本文介绍Rviz的进阶使用,效果如下所示,可以实现坐标轴、坐标系、直线、平面、点列、圆柱等多种Marker的可视化。

在这里插入图片描述

2 环境配置

下载可视化库

git clone https://github.com/PickNikRobotics/rviz_visual_tools

初次编译可能会遇到以下问题

  • -- Could NOT find eigen_stl_containers (missing: eigen_stl_containers_DIR) -- Could not find the required component 'eigen_stl_containers'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.

    解决方案

    git clone https://github.com/AcutronicRobotics/eigen_stl_containers
    
  • -- Could NOT find graph_msgs (missing: graph_msgs_DIR) -- Could not find the required component 'graph_msgs'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.

    解决方案

    sudo apt-get install ros-noetic-graph-msgs
    

最后一起编译即可

catkin_make

3 使用方法

rviz_visual_tools提供了很多方便的可视化API

  • publishSphere
  • publishSpheres
  • publishArrow/publishXArrow
  • publishYArrow
  • publishZArrow
  • publishCuboid
  • publishCone
  • publishXYPlane
  • publishXZPlane
  • publishYZPlane
  • publishLine
  • publishPath
  • publishPolygon
  • publishBlock
  • publishWireframeCuboid
  • publishWireframeRectangle
  • publishAxis
  • publishAxisLabeled
  • publishCylinder
  • publishMesh
  • publishText
  • publishTest

rviz_visual_tools提供了下述可选的颜色

  • BLACK,
  • BLUE,
  • BROWN,
  • CYAN,
  • DARK_GREY,
  • GREEN,
  • GREY,
  • LIME_GREEN,
  • MAGENTA,
  • ORANGE,
  • PINK,
  • PURPLE,
  • RED,
  • WHITE,
  • YELLOW,
  • TRANSLUCENT_LIGHT,
  • TRANSLUCENT,
  • TRANSLUCENT_DARK,
  • RAND,
  • CLEAR,
  • DEFAULT

以及下述大小

  • XXXXSMALL,
  • XXXSMALL,
  • XXSMALL,
  • XSMALL,
  • SMALL,
  • MEDIUM,
  • LARGE,
  • XLARGE,
  • XXLARGE,
  • XXXLARGE,
  • XXXXLARGE,

4 测试用例

比如要可视化一个三维位姿

#include <rviz_visual_tools/rviz_visual_tools.h>// For visualizing things in rviz
rviz_visual_tools::RvizVisualToolsPtr visual_tools_;// Change the first parameter to the name of your robot's base frame, 
// and the second parameter to whatever name you'd like to use for the corresponding Rviz marker ROS topic.
visual_tools_.reset(new rviz_visual_tools::RvizVisualTools("base_frame","/rviz_visual_markers"));// Create pose
Eigen::Isometry3d pose;
pose = Eigen::AngleAxisd(M_PI/4, Eigen::Vector3d::UnitY()); // rotate along X axis by 45 degrees
pose.translation() = Eigen::Vector3d( 0.1, 0.1, 0.1 ); // translate x,y,z// Publish arrow vector of pose
ROS_INFO_STREAM_NAMED("test","Publishing Arrow");
visual_tools_->publishArrow(pose, rviz_visual_tools::RED, rviz_visual_tools::LARGE);// publish
visual_tools_->trigger();

本文的完整工程代码联系下方博主名片获取


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
http://www.lryc.cn/news/23333.html

相关文章:

  • Linux命令之lz4命令
  • 强强角逐,筑梦开源| 2022年度启智社区优秀项目及开发者评选结果正式揭晓
  • 【使用两个队列实现栈】
  • 毕业设计 基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信
  • PowerShell Install Rabbitmq
  • ASM 字节码插桩:隐私合规方法检测!
  • spring data jpa使用流式查询
  • Golang实现RabbitMQ中死信队列各个情况
  • react源码分析:组件的创建和更新
  • Android Lmkd 低内存终止守护程序
  • 快速掌握 Flutter 图片开发核心技能
  • 复习使用git(二)
  • 魔兽世界335服务端架设对外网开放的步骤
  • 华为OD机试模拟题 用 C++ 实现 - 通信误码(2023.Q1)
  • Vue 核心
  • Kylin V10桌面版arm3568 源码安装redis
  • 【ICCV2022】 CAPAO:一种高效的单阶段人体姿态估计模型
  • ROS1学习笔记:ROS中的坐标管理系统(ubuntu20.04)
  • requests---(2)session简介与自动写博客
  • 基于 HAProxy + Keepalived 搭建 RabbitMQ 高可用集群
  • 基于51单片机和proteus的智能调速风扇设计
  • SQL Server开启CDC的完整操作过程
  • 【Spring Cloud Alibaba】008-Sentinel
  • 解读CRC校验计算
  • 深入理解Spring MVC下
  • 【Linux】ssh-keygen不需要回车,自动生成密钥,批量免密操作!
  • C/C++开发,无可避免的内存管理(篇四)-智能指针备选
  • VMware ESXi给虚拟机扩容
  • 认识STM32和如何构建STM32工程
  • RabbitMQ延迟队列