linux中qt加载rviz,ROS与Qt5人机交互界面开发-添加rviz显示界面
ROS与Qt5人机交互界面开发-添加rviz显示界面
说明:
介绍如何添加rviz显示界面
步骤:
实现效果:
核心代码
创建librviz界面类:
qrviz_widget.h内容如下:
#ifndef QRVIZ_WIDGET_H
#define QRVIZ_WIDGET_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace Ui {
class QRviz_widget;
}
class QRviz_widget : public QWidget
{
Q_OBJECT
public:
explicit QRviz_widget(QWidget *parent = 0);
~QRviz_widget();
private:
Ui::QRviz_widget *ui;
};
#endif // QRVIZ_WIDGET_H
qrviz_widget.cpp内容如下:
#include "../include/cyrobot_monitor/qrviz_widget.h"
#include "ui_qrviz_widget.h"
QRviz_widget::QRviz_widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::QRviz_widget)
{
ui->setupUi(this);
int argc;
char **argv;
ros::init(argc,argv,"QRviz",ros::init_options::AnonymousName);
//创建rviz容器
rviz::RenderPanel *render_panel_=new rviz::RenderPanel;
//设置鼠标形状
render_panel_->setCursor(Qt::PointingHandCursor);
//向layout添加widget
ui->verticalLayout->addWidget(render_panel_);
//初始化rviz控制对象
rviz::VisualizationManager* manager_=new rviz::VisualizationManager(render_panel_);
//初始化camera 这行代码实现放大 缩小 平移等操作
render_panel_->initialize(manager_->getSceneManager(),manager_);
// //工具管理
rviz::ToolManager* tool_man;
// connect( tool_man, SIGNAL( toolAdded( Tool* )), this, SLOT( addTool( Tool* )));
// connect( tool_man, SIGNAL( toolRemoved( Tool* )), this, SLOT( removeTool( Tool* )));
// connect( tool_man, SIGNAL( toolRefreshed( Tool* )), this, SLOT( refreshTool( Tool* )));
// connect( tool_man, SIGNAL( toolChanged( Tool* )), this, SLOT( indicateToolIsCurrent( Tool* )));
manager_->initialize();
manager_->removeAllDisplays();
rviz::Display* grid_ = manager_->createDisplay( "rviz/Grid", "adjustable grid", true );
ROS_ASSERT( grid_ != NULL );
// Configure the GridDisplay the way we like it.
grid_->subProp( "Line Style" )->setValue( "Billboards" );
grid_->subProp( "Color" )->setValue(QColor(125,125,125));
manager_->startUpdate();
}
QRviz_widget::~QRviz_widget()
{
delete ui;
}
新建widget对象:
qrviz=new QRviz_widget(ui.widget_rviz);
qrviz->showFullScreen();
qrviz->show();
如图:
其中,为了实现鼠标放大缩小移动的功能,本来以为需要自己监听鼠标事件,读了读rviz源码,发现这一行代码就能实现:
//初始化camera 这行代码实现放大 缩小 平移等操作
render_panel_->initialize(manager_->getSceneManager(),manager_);
linux中qt加载rviz,ROS与Qt5人机交互界面开发-添加rviz显示界面相关推荐
- Linux重新读写分区的命令,用partprobe、blockdev、hdparm、partx命令在Linux中重新加载分区表...
本文介绍Linux操作系统重新加载分区表的方法:使用partprobe.blockdev.hdparm.partx命令. 背景 作为Linux管理员,你可以在一天内多次执行磁盘分区任务.大多数情况下, ...
- linux下qt加载boost,信号槽的实现实例—— Qt 和 Boost
Qt 的信号槽和 Boost.Signals 由于有着截然不同的设计目标,因此二者的实现.强度也十分不同.将二者混合在一起使用也不是不可能的,我们将在本系统的最后一部分来讨论这个问题. 使用信号槽 信 ...
- linux中动态加载动态库的方法
功能:打开一个动态链接库 包含头文件: #include <dlfcn.h> 函数定义 : void * dlopen( const char * pathname , int mod ...
- 原声html中怎么加载vue文件,HTML文件引入Vue开发
HTML文件引入Vue开发 页面标题 {{text}} {{item.text}} 点击事件 @click {{text}} 添加文本使用两个大括号{{文本}} img标签中src前面得加冒号 new ...
- android webview加载不出来,【新手有关问题】Android浏览器中WebView加载不出网页
当前位置:我的异常网» Android » [新手有关问题]Android浏览器中WebView加载不出网 [新手有关问题]Android浏览器中WebView加载不出网页 www.myexcepti ...
- Linux环境变量加载的研究
我们经常遇到在linux执行某条命令时出现xxx文件没找到的问题.很多情况都不是库没有安装,而是环境变量的错误. 但是,我明明是设置了环境变量啊.所以,我对此进行了试验. 我们登录linux有很多种, ...
- 关于WordPress中字体加载慢的问题解决方案(转)
2016-04-15 最近发现Wordpress有时候加载的特别慢,于是就想办法找了下原因.之前听网上说是因为wordpress用的是Google的字体库,而且是每次都要加载,导致访问慢的,于是当时装 ...
- linux path环境变量检索目录,Linux下动态链接库加载路径及搜索路径问题
引子 近日,服务器迁移后,偷懒未重新编译nginx的,直接./nginx启动,结果遇到如下问题: "error while loading shared libraries" 这是 ...
- 【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )
文章目录 一.操作系统需要满足的要素 二.宏内核 三.微内核 四.Linux 内核动态加载机制 一.操作系统需要满足的要素 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要 为 ...
最新文章
- OpenCV 4.5.2 发布
- 使用drbd进行磁盘扩容,小磁盘扩容大磁盘后大小未变的问题解决方法
- Linux Shell学习(3)
- 分布式模块之间的调用_分布式事务
- innodb下的mvcc_InnoDB的MVCC实现原理
- 数字滤波器设计——Matlab(理想低通滤波器、FIR滤波器)
- RGB与十六进制颜色进行互转
- matlab模拟滤波器频率响应,怎样求FIR滤波器在任意频率上的频率响应?
- 汇总:各类手游渠道特点及选择方法
- 软文写作技巧,你的微信软文也能破100000+
- ST官网下载STM32固件库
- 使用开源软件XWIKI搭建公司内部WIKI系统
- OLED TFT屏幕相关
- js中条件三目运算符?:
- Block源码解析和深入理解
- 到底多少够用 11款USB设备供电大揭秘
- C#winform图书管理系统(课程设计)
- 如何基于nonebot2做一个q群机器人
- 程序员如何提高10%的效率2
- socket编程 服务器
热门文章
- jp@gc - UItimate Thread Goup
- Quill插入表格getModule(‘table‘)为undefined 问题
- 【论文学习笔记】《A Review of Deep Learning Based Speech Synthesis》
- 大教堂和集市--两种不同的软件开发模式 论文阅读笔记
- 桥接模式和中继模式的区别
- 火绒剑,监控功能的使用
- Activity(三)—— Activity的启动模式
- 怎样谈网站建设项目需求
- JAVA音视频解决方案----音频基础知识
- 计算机5800计算道路标高程序,Casio fx-5800P计算器三个公路基本测量程序编写与应用...