librviz点云显示(Ubuntu16.04,Kinetic,QT5.12)

librviz这个库很好用,写出来的代码简洁明了,然而官方文档实在是太匮乏了,Librviz Tutorial只给出了非常简单的例程,没有关于图片、点云等数据的显示代码。这里记录一下踩过的坑,一方面做下记录、免得日后忘记,另一方面给有需要的同学做一个参考。

1、效果

本科毕设做的是LOAM算法,效果非常好,老师希望自己做一个界面,方便以后和其他应用结合起来使用,界面效果和rviz差不多就行。由于rviz本身就是由QT写的,而且官方还提供了librviz库供大家自己DIY界面,因此使用QT来完成这个任务。Ubuntu版本为16.04,ROS为Kinetic。目前完成了odometry信息,点云信息,以及窗口视野控制的代码,把LOAM需要的功能基本全都移植过来了,先来看下效果:
在这里插入图片描述

2、qt_ros

使用qt_ros可以方便的生成ROS的qt界面模板,但是官方提供qt_ros最高只到indigo,在Kinetic下用该版本的qt_ros生成的模板是基于qt4的,使用catkin_make能够成功编译,但在QT5下编译会出现各种问题。在尝试N多方法无解后放弃了使用qt_ros,转而使用zjx提供给我的模板。

3、流程

3.1 新建package

在工作空间的src目录下使用catkin_create_pkg新建一个用于测试librviz的package

catkin_create_pkg testRVIZ roscpp rospy rviz

3.2 将模板文件拷贝到testRVIZ 目录下

包括include/ resourses/ src/ ui/四个文件夹,文件可以从我的GitHub上下载。

3.3 修改CMakeLists.txt

cmake_minimum_required(VERSION 2.8.3)
project(test)

## Compile as C++11, supported in ROS Kinetic and newer
add_compile_options(-std=c++11)

##############################################################################
# Catkin
##############################################################################
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  rviz
)
##############################################################################
# Qt Environment
##############################################################################

## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)
find_package(Qt5 REQUIRED Core Widgets)
set(QT_LIBRARIES Qt5::Widgets)
file(GLOB QT_FORMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui)
file(GLOB QT_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} resources/*.qrc)
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/ros_gui/*.hpp *.h)
QT5_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
QT5_WRAP_CPP(QT_MOC_HPP ${QT_MOC})


################################################
## Declare ROS messages, services and actions ##
################################################


################################################
## Declare ROS dynamic reconfigure parameters ##
################################################

###################################
## catkin specific configuration ##
###################################
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES test
#  CATKIN_DEPENDS roscpp rospy rviz
#  DEPENDS system_lib
)

###########
## Build ##
###########
include_directories(
# include
  ${catkin_INCLUDE_DIRS}
)


file(GLOB_RECURSE QT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS src/*.cpp)

add_executable(ros_gui ${QT_SOURCES} ${QT_RESOURCES_CPP} ${QT_FORMS_HPP} ${QT_MOC_HPP})
target_link_libraries(ros_gui ${QT_LIBRARIES} ${catkin_LIBRARIES})
install(TARGETS ros_gui RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})

#############
## Testing ##
#############

3.4 在Qt中导入工程,

在工具->选项中将编译器改为GCC5,因为kinetic项目需要GCC5来编译(神坑)。
在这里插入图片描述
在CMakeConfiguration中将/opt/ros/kinetic加入到CMAKE_PREFIX_PATH中。
在这里插入图片描述

3.5 构建代码

到这里就已经大功告成了。具体代码就不再讲解了,非常简单,一个主要的难点在于视角的管理很难找,看了代码就明白了。

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值