位置: IT常识 - 正文

ros(23):接收rviz中的2D Nav Goal、2D Pose Estimate消息(ros urdf)

编辑:rootadmin
ros(23):接收rviz中的2D Nav Goal、2D Pose Estimate消息 1 rviz 教程1.1 2D Nav Goal2D Nav Goal (Keyboard shortcut: g)

推荐整理分享ros(23):接收rviz中的2D Nav Goal、2D Pose Estimate消息(ros urdf),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ros irq,ros subscribe 参数,ros subscribe 参数,ros接收发送节点信息,ros接收发送节点信息,ros接收发送节点信息,ros irq,ros接入ssr,内容如对您有帮助,希望把文章链接给更多的朋友!

This tool lets you set a goal sent on the "goal" ROS topic. Click on a location on the ground plane and drag to select the orientation:

二维导航目标(快捷键:g) 此工具允许您设置在“goal”ROS主题上发送的目标。单击地平面上的某个位置并拖动以选择方向:

即设置二维导航目标,并使用“goal”这个话题进行通讯(结合rviz的其他教程,话题名也可能是“/move_base_simple/goal”)

其消息类型为:geometry_msgs/PoseStamped

meng@meng:~/ideas/ros_ws$ rosmsg info geometry_msgs/PoseStampedstd_msgs/Header header uint32 seq time stamp string frame_idgeometry_msgs/Pose pose geometry_msgs/Point position float64 x float64 y float64 z geometry_msgs/Quaternion orientation float64 x float64 y float64 z float64 w1.2 2D Pose Estimate2D Pose Estimate (Keyboard shortcut: p)

This tool lets you set an initial pose to seed the localization system (sent on the "initialpose" ROS topic). Click on a location on the ground plane and drag to select the orientation:

二维姿势估计(键盘快捷键:p) 此工具允许您设置初始姿势以播种定位系统(发送至“initialpose”ROS主题)。单击地平面上的某个位置并拖动以选择方向:

即设置二维初始位姿并使用“initialpose”进行通讯

ros(23):接收rviz中的2D Nav Goal、2D Pose Estimate消息(ros urdf)

其消息类型为:geometry_msgs/PoseWithCovarianceStamped

meng@meng:~/ideas/ros_ws$ rosmsg info geometry_msgs/PoseWithCovarianceStampedstd_msgs/Header header uint32 seq time stamp string frame_idgeometry_msgs/PoseWithCovariance pose geometry_msgs/Pose pose geometry_msgs/Point position float64 x float64 y float64 z geometry_msgs/Quaternion orientation float64 x float64 y float64 z float64 w float64[36] covariance1.3 打开rviz查看

Panels--Tool Properties(勾选)

 

2 订阅话题

订阅起点位姿和终点话题并打印输出的c++文件:receive_2d_nav_goal.cpp

#include "ros/ros.h"#include "std_msgs/String.h"#include <geometry_msgs/PoseWithCovarianceStamped.h>#include <iostream>#include <geometry_msgs/PoseStamped.h>void chatterCallback(const geometry_msgs::PoseWithCovarianceStamped::ConstPtr& msg){ double x=msg->pose.pose.position.x; double y=msg->pose.pose.position.y; std::cout<<x<<y<<std::endl;}void chatterCallback1(const geometry_msgs::PoseStamped::ConstPtr& msg){ std::cout<<"1111"<<std::endl; double x=msg->pose.position.x; double y=msg->pose.position.y; std::cout<<x<<y<<std::endl;}int main(int argc, char **argv){ ros::init(argc, argv, "reveive_rviz"); ros::NodeHandle nh; ros::Subscriber sub = nh.subscribe("/initialpose", 1, chatterCallback);//队列长度:1000或1或其他 ros::Subscriber sub1 = nh.subscribe("/move_base_simple/goal", 1, chatterCallback1);//队列长度:1000或1或其他while(ros::ok()){ ros::spinOnce();} return 0;}

启动rviz和节点程序,用 2D Nav Goal、2D Pose Estimate 在rviz中做标记,即可打印输出:

订阅起点位姿和终点,并保持发布:

#include "ros/ros.h"#include "std_msgs/String.h"#include <geometry_msgs/PoseWithCovarianceStamped.h>#include <iostream>#include <geometry_msgs/PoseStamped.h>ros::Publisher initialpose_pub,goal_pub;geometry_msgs::PoseWithCovarianceStamped initialpose_tmp;//设置为全局变量,可以一直被发布出来geometry_msgs::PoseStamped goal_tmp;void initialpose_handler(const geometry_msgs::PoseWithCovarianceStamped::ConstPtr& msg){ double x=msg->pose.pose.position.x; double y=msg->pose.pose.position.y; std::cout<<"起点坐标:("<<x<<", "<<y<<")"<<std::endl; initialpose_tmp=*msg; // initialpose_tmp.header=msg->header; // initialpose_tmp.header=msg->header; initialpose_pub.publish(initialpose_tmp);}void goal_handler(const geometry_msgs::PoseStamped::ConstPtr& msg){ double x=msg->pose.position.x; double y=msg->pose.position.y; std::cout<<"终点坐标:("<<x<<", "<<y<<")"<<std::endl; goal_tmp=*msg; goal_pub.publish(*msg);}int main(int argc, char **argv){ ros::init(argc, argv, "reveive_rviz"); ros::NodeHandle nh; ros::Subscriber sub = nh.subscribe("/initialpose", 1, initialpose_handler);//1000改为1 ros::Subscriber sub1 = nh.subscribe("/move_base_simple/goal", 1, goal_handler);//1000改为1 initialpose_pub = nh.advertise<geometry_msgs::PoseWithCovarianceStamped>("initialpose_my", 1); goal_pub = nh.advertise<geometry_msgs::PoseStamped>("goal_my", 1); while(ros::ok()) { ros::spinOnce(); } return 0;}

参考链接:

2D Nav Goal和2D Pose Estimate功能介绍:rviz/UserGuide - ROS Wiki

2D Nav Goal和2D Pose Estimate的消息类型:navigation/Tutorials/Using rviz with the Navigation Stack - ROS Wiki 

本文链接地址:https://www.jiuchutong.com/zhishi/292298.html 转载请保留说明!

上一篇:一年一度的施瓦本哈尔圣诞市集,德国巴登-符腾堡州 (© sack/Getty Images Plus)

下一篇:阿拉斯加普拉德霍湾附近的雄性麝牛 (© Oliver Smart/Alamy)(阿拉斯给加拉普)

  • 天音科技是苹果售后吗(天音科技是苹果售后地址)

    天音科技是苹果售后吗(天音科技是苹果售后地址)

  • ipad鼠标滚轮反了(ipad鼠标滚轮反转)

    ipad鼠标滚轮反了(ipad鼠标滚轮反转)

  • 手机assetbundle删了会怎样(手机assetbundle能不能删除)

    手机assetbundle删了会怎样(手机assetbundle能不能删除)

  • 淘宝自动确认收货时间是什么时候(淘宝自动确认收货时间是几天)

    淘宝自动确认收货时间是什么时候(淘宝自动确认收货时间是几天)

  • 钉钉直播放视频没有声音(钉钉直播放视频声音小怎么办)

    钉钉直播放视频没有声音(钉钉直播放视频声音小怎么办)

  • 新注册的微信号为什么被限制登录(新注册的微信号为什么说违规)

    新注册的微信号为什么被限制登录(新注册的微信号为什么说违规)

  • 手机aod是什么意思(手机aod功能怎么用)

    手机aod是什么意思(手机aod功能怎么用)

  • 小米手机被监控了怎么解除(小米手机被监控如何反监控)

    小米手机被监控了怎么解除(小米手机被监控如何反监控)

  • 苹果耳机二代和三代的区别(苹果耳机二代和一代的区别)

    苹果耳机二代和三代的区别(苹果耳机二代和一代的区别)

  • qq打卡出来多少天了(qq打卡有什么奖励)

    qq打卡出来多少天了(qq打卡有什么奖励)

  • 华为智能提醒有什么用(华为智能提醒是啥)

    华为智能提醒有什么用(华为智能提醒是啥)

  • word怎么调页面顺序(word怎么调页面设置)

    word怎么调页面顺序(word怎么调页面设置)

  • 华为手机怎么隐藏应用图标(华为手机怎么隐藏桌面上的软件图标)

    华为手机怎么隐藏应用图标(华为手机怎么隐藏桌面上的软件图标)

  • 苹果已经信任为什么验证不了(苹果已经信任为什么还是打不开)

    苹果已经信任为什么验证不了(苹果已经信任为什么还是打不开)

  • 荣耀9x语音助手可以语音唤醒吗(荣耀9x语音助手怎么关闭)

    荣耀9x语音助手可以语音唤醒吗(荣耀9x语音助手怎么关闭)

  • 刷宝怎么看视频元宝多(刷宝短视频怎么看历史记录)

    刷宝怎么看视频元宝多(刷宝短视频怎么看历史记录)

  • 网易考拉如何查看通讯录好友(网易考拉怎么查真伪)

    网易考拉如何查看通讯录好友(网易考拉怎么查真伪)

  • 虎扑如何升级发帖(虎扑怎样升级)

    虎扑如何升级发帖(虎扑怎样升级)

  • 路由器lan口和wan口(路由器lan口和wan口设置)

    路由器lan口和wan口(路由器lan口和wan口设置)

  • qq群怎么@全体成员(qq群如何@全体)

    qq群怎么@全体成员(qq群如何@全体)

  • vue中使用elementUI使用el-tabs,切换Tab如何实现实时加载,以及el-table表格使用总结(vue中使用v-for指令时 为什么要加 key解释正确的是)

    vue中使用elementUI使用el-tabs,切换Tab如何实现实时加载,以及el-table表格使用总结(vue中使用v-for指令时 为什么要加 key解释正确的是)

  • RabbitMQ个人实践

    RabbitMQ个人实践

  • 织梦系统生成页面500错误(织梦怎么用模板建站)

    织梦系统生成页面500错误(织梦怎么用模板建站)

  • 房地产销售增值税纳税义务发生时间
  • 经营活动现金流量公式
  • 装修费用摊销是当月还是次月
  • 增值税减免税款怎么算
  • 发票已开后 对方公司名称变更怎么处理
  • 股东借款利息收入放什么科目
  • 现金流量表的期末数与资产负债表的货币资金吗
  • 公益捐赠流程图
  • 外贸企业一般纳税人申报
  • 个人购买房产是指什么
  • 个体工商户收到发票怎么做账
  • 房产一般纳税人每个月报哪些税
  • 房地产分期开发的标准
  • 老板请员工吃饭唯独没叫你是什么意思
  • 按月预提短期借款利息
  • 年底结账会计分录一定要做吗
  • 企业承租经营的承租人取得的所得
  • 营改增后消费型增值税怎么算及举例说明
  • 进货会计凭证
  • 购买方申请的红字信息表需要邮寄给销售方吗
  • 商业银行贷款的流动性与效益性成正比
  • 个人独资企业所得税缴纳标准
  • 平均应收账款金额
  • 非流动负债怎么巧记
  • 期末留抵税额怎么做账
  • 苹果双系统不小心删了苹果系统
  • 电脑开始菜单在右边怎么调回来
  • 实发工资和报税工资
  • 技术服务合同要盖骑缝章吗
  • 固定资产入账价值计算公式
  • win10下载的软件打不开
  • 无线路由器如何桥接wifi信号
  • 华为手机开热点后wlan自动关闭
  • 小规模纳税人结转免交增值税
  • 盒装cpu和散装
  • 进项税额是
  • 静电现象什么意思
  • 车辆购置税税收缴款书
  • 搬迁收入增值税
  • 自己买材料自己装修
  • 外贸企业购货合同要交印花税吗
  • vue.3
  • Win11系统自带输入法怎么卸载
  • 个人怎么开专票
  • 购买商品发生的费用计入
  • 十年磨一剑的下一句幽默
  • 借款合同按什么缴纳印花税
  • 固定资产折旧的账务处理
  • SQL 联合查询与XML解析实例详解
  • db2数据库创建索引语句
  • 应付账款转收入摘要怎么写
  • 个人出租商铺如何报税申报,需要什么资料
  • 企业所得税不能税前扣除项目
  • 原材料的对应账户有哪些
  • 出口退税申报需要手动录入什么信息呢
  • 工程一般挂靠取得的收入怎么做账?
  • 印花税的减免
  • 投标保证金退还
  • 可以从公司公户直接支付给个人的款项有哪些
  • 固定资产计提折旧的会计科目
  • 债权人接受债务怎么处理
  • Linux下安装MySQL5.7.19问题小结
  • ubuntu20.04怎么用
  • FastDFS4和Ubuntu12安装及部署步骤
  • hpm是什么格式的文件
  • Win7旗舰版64位如何关闭电脑触摸屏功能的方法
  • win8系统蓝屏后无法修复
  • unity分发平台
  • js的forin
  • node.js项目结构
  • nodejs mocha
  • 很好的无光照模式叫什么
  • vue.js如何使用
  • js和jquery混合使用
  • 安卓开发日记本
  • javascript总结笔记
  • jquery图片轮播插件slick不动
  • 国家税务局湖北省税务总局
  • 陕西个体户免税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设