Home » ROS与Qt5人机交互 » ROS与Qt5人机交互界面开发-发布导航目标点和原点位置

ROS与Qt5人机交互界面开发-发布导航目标点和原点位置

ROS与Qt5人机交互界面开发-发布导航目标点和原点位置

说明:

  • 介绍如何发布导航目标点和原点位置

步骤:

  • 在前面几篇教程中我们已经实现了订阅map话题,这篇我们主要就是实现rviz中的设置目标点和初始点的功能

  • 实现效果:

  • 在地图上选点后librviz就会自动进行变换,发布目标点信息
    请输入图片描述

  • 可以发现控制台提示已经发布了位置点话题:

请输入图片描述

  • 在下一篇博客继续实现完整导航功能

  • 核心代码

  • 首先通过rviz控制对象获取ToolManager工具对象

//初始化rviz控制对象
manager_=new rviz::VisualizationManager(render_panel_);
//获取当前rviz控制对象的 tool控制对象
tool_manager_=manager_->getToolManager();
  • 之后就能通过工具对象选取导航目标点
 //设置机器人导航目标点
 void QRviz::Set_Goal()
 {
     //添加工具
     current_tool= tool_manager_->addTool("rviz/SetGoal");
     //设置goal的话题
     rviz::Property* pro= current_tool->getPropertyContainer();
     pro->subProp("Topic")->setValue("/move_base_simple/goal");
     //设置当前frame
     manager_->setFixedFrame("map");
     //设置当前使用的工具为SetGoal(实现在地图上标点)
     tool_manager_->setCurrentTool( current_tool );

     manager_->startUpdate();

 }
  • 设置机器人初始点也是同理:
 //设置机器人导航初始位置
 void QRviz::Set_Pos()
 {
     //获取设置Pos的工具
     //添加工具

     current_tool= tool_manager_->addTool("rviz/SetInitialPose");
     //设置当前使用的工具为SetInitialPose(实现在地图上标点)
     tool_manager_->setCurrentTool( current_tool );
     manager_->startUpdate();

//     tool_manager_->setCurrentTool()

 }
  • ToolManager的所有类别名
  • 其实也就是rviz地图顶上一行

20200411093832332.png

  • 需要其他的功能自行添加即可:
 "rviz/MoveCamera";
"rviz/Interact";
 "rviz/Select";
 "rviz/SetInitialPose";
"rviz/SetGoal";

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与qt5人机交互界面开发