ROS Qt5 librviz人机交互界面开发八(实现导航功能的完整显示)-全网首发

本系列教程文章专栏:

ROS机器人GUI程序开发

本系列课程已上线古月学院,欢迎感兴趣的小伙伴订阅:

  1. ROS Qt开发环境搭建以及基础知识介绍
  2. ROS人机交互软件的界面开发
  3. ROS Rviz组件开发方法

在这里插入图片描述

开发交流QQ群: 797497206
完整项目代码:
github

文章目录

    • 前言
    • 一,显示效果
    • 二,核心代码
    • 三,完整开源项目
    • (转载请注明作者和出处:https://blog.csdn.net/qq_38441692 未经允许请勿用于商业用途)

前言

在上一篇教程我们已经实现导航的初始点和目标点的设置:
ROS Qt5 librviz人机交互界面开发七(发布导航目标点和原点位置)-全网首发
这一篇主要实现完整显示,在文章末尾有完整项目地址哦~

一,显示效果

设置初始点:
ROS Qt5 librviz人机交互界面开发八(实现导航功能的完整显示)-全网首发_第1张图片
设置目标点:ROS Qt5 librviz人机交互界面开发八(实现导航功能的完整显示)-全网首发_第2张图片

二,核心代码

如果看过前几篇博客,其实也就是添加几个图层:
核心代码:

 //显示导航相关
 void QRviz::Display_Navigate(bool enable,QString Global_topic,QString Global_planner,QString Local_topic,QString Local_planner)
 {
     
    if(Navigate_localmap) {
     delete Navigate_localmap; Navigate_localmap=NULL;}
    if(Navigate_localplanner) {
     delete Navigate_localplanner; Navigate_localplanner=NULL;}
    if(Navigate_globalmap) {
     delete Navigate_globalmap; Navigate_globalmap=NULL;}
    if(Navigate_globalplanner) {
     delete Navigate_globalplanner; Navigate_globalplanner=NULL;}
    //local map
    Navigate_localmap=manager_->createDisplay("rviz/Map","Qlocalmap",enable);
    Navigate_localmap->subProp("Topic")->setValue(Local_topic);
    Navigate_localmap->subProp("Color Scheme")->setValue("costmap");
    Navigate_localplanner=manager_->createDisplay("rviz/Path","QlocalPath",enable);
    Navigate_localplanner->subProp("Topic")->setValue(Local_planner);
    Navigate_localplanner->subProp("Color")->setValue(QColor(0,12,255));
    //global map
    Navigate_globalmap=manager_->createDisplay("rviz/Map","QGlobalmap",enable);
    Navigate_globalmap->subProp("Topic")->setValue(Global_topic);
    Navigate_globalmap->subProp("Color Scheme")->setValue("costmap");
    Navigate_globalplanner=manager_->createDisplay("rviz/Path","QGlobalpath",enable);
    Navigate_globalplanner->subProp("Topic")->setValue(Global_planner);
    Navigate_globalplanner->subProp("Color")->setValue(QColor(255,0,0));
    //更新画面显示
    manager_->startUpdate();

 }

三,完整开源项目

在我自己学习的过程中目前发现没有相关类似完整开源项目,为了帮助其他人少走弯路,我决定将自己的完整项目开源:
github
创作不易,如果本教程对你有帮助,关注或点个赞吧,或者github标个星哦~~
您的支持就是我最大的动力~

(转载请注明作者和出处:https://blog.csdn.net/qq_38441692 未经允许请勿用于商业用途)

你可能感兴趣的:(ROS机器人GUI程序开发,QT,ROS机器人)