Qt+RVIZ——3D视场背景颜色更新

前言

本文讲述如何改变rviz::VisualizationManager类中3D视图的背景颜色。
实现效果:

1、背景全黑

请添加图片描述

2、背景蓝色

请添加图片描述

实现

诚然,在命令端口输入rviz,在程序里面改变背景颜色是十分便捷的,但是如果编程中需要用到QT+RVIZ,就需要通过程序实现改变背景的颜色。

特别的,对于rviz::VisualizationManager,翻看API参考文档可以发现这个类有一个成员变量是rviz::ColorProperty * background_color_property_,但是很不巧,它是protected变量,再看看,它有一个成员函数updateBackgroundColor (),也很不巧,它是一个私有槽函数。
再点进去看看这个函数说的是什么

 void VisualizationManager::updateBackgroundColor()
{
render_panel_->setBackgroundColor( qtToOgre( background_color_property_->getColor() ));

queueRender();
}

很简单,调用成员rener_panel_ 的成员函数setBackgroundColor(其实是rviz::RenderPanel的父类rviz::QtOgreRenderWindow的公开成员函数)来设置背景颜色,再调用queueRender()
那么一个很自然的想法就是直接调用上述的函数,把想要的颜色替换掉上述参数就可以。

#include "rviz/visualization_manager.h"
#include "rviz/render_panel.h"
#include "rviz/properties/parse_color.h"
...

render_panel_->setBackgroundColor( rviz::qtToOgre(QColor(Qt::white)));
queueRender();

其中关于如何使用QT+RVIZ可以到官网查看或者看我的另一篇博文,里面也有官文的链接。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Noetic是一个ROS(机器人操作系统)的发行版,它是适用于最新版本Ubuntu系统的。Qt是一款跨平台的GUI开发框架,可以在Linux、Windows和Mac等系统上运行。Rviz是一个ROS的可视化工具,它能够显示机器人的运动状态以及传感器的数据等信息。3D点云是一种三维空间中的数据表示方式,可以呈现出物体的形状和位置等信息。 在Noetic中,可以使用Qt来嵌入Rviz,从而实现3D点云的显示。需要先安装好ROS和Qt,并安装好Rviz的相关依赖项。然后,在Qt中创建一个控件,并在控件中添加一个QProcess对象,用于启动Rviz进程。接着,通过QProcess的管道与Rviz进行通信,将点云数据传递给Rviz,以实现点云的显示。 具体实现过程可以参考以下步骤: 1. 创建Qt的控件,例如一个QWidget或者QMainWindow等。 2. 在创建的控件中添加一个QProcess对象,用于启动Rviz进程。 3. 设置QProcess对象的环境变量和程序路径等参数,以启动Rviz进程。 4. 通过QProcess的管道与Rviz进行通信,将点云数据传递给Rviz。 5. 在Rviz中设置点云的相关属性,例如点云的颜色、大小、透明度等。 6. 最后,启动Qt程序,即可在控件中看到3D点云的显示。 需要注意的是,在实现过程中需要注意数据传递的格式以及各项参数的设置,以确保点云数据能够正确地显示在Rviz中。同时还要注意程序的稳定性和可靠性,防止出现意外错误和异常情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值