位置: IT常识 - 正文

在ROS下使用Cartographer的纯定位模式,并实时获取定位位姿数据(ros call)

编辑:rootadmin
在ROS下使用Cartographer的纯定位模式,并实时获取定位位姿数据 文章目录前言一、Cartographer纯定位模式的配置1.启动纯定位模式配置2.加载定位地图,并删除cartographer生成地图节点二、实时获取定位数据1.新建一个节点发布定位数据2.修改makelist文件并编译3.启动仿真环境并启动节点总结前言

推荐整理分享在ROS下使用Cartographer的纯定位模式,并实时获取定位位姿数据(ros call),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ros calibration,ros launch type,ros怎么运行,ros 使用,ros call,ros key,ros call,ros calibration,内容如对您有帮助,希望把文章链接给更多的朋友!

Cartographer提供了一种纯定位模式,在实际工程中有很多应用。本文记录在Gazebo仿真环境下,使用turtlebot3在cartographer的纯定位模式下,发布实时定位数据的过程。

一、Cartographer纯定位模式的配置1.启动纯定位模式配置

修改你的.lua文件,添加以下橙色内容颜色显示内容。

2.加载定位地图,并删除cartographer生成地图节点在ROS下使用Cartographer的纯定位模式,并实时获取定位位姿数据(ros call)

在你的.launch文件中添加map_server 节点,并删除cartographer_occupancy_grid_node节点,如下

<node name="map_server" pkg="map_server" type="map_server"args="/home/{yourname}/catkin_ws/map/{yourmapname}.yaml" /> <!-- cartographer_node --> <node pkg="cartographer_ros" type="cartographer_node" name="cartographer_node" args="-configuration_directory $(find turtlebot3_slam)/config -configuration_basename turtlebot3_lds_2d_pureLocation.lua -load_state_filename /home/{yourname}/catkin_ws/map/{yourmapname}.pbstream" output="screen"> <!-- cartographer_occupancy_grid_node <node pkg="cartographer_ros" type="cartographer_occupancy_grid_node" name="cartographer_occupancy_grid_node" args="-resolution 0.05 " />-->二、实时获取定位数据

cartographer纯定位模式下获取定位数据,就是获取map坐标到base_link的tf。

1.新建一个节点发布定位数据

在你的工作区间的软件包的src文件夹下添加一个CartoTransferPose_main.cc文件,内容如下。

#include <ros/ros.h>#include <tf/transform_listener.h>#include <geometry_msgs/Pose2D.h>#include <fstream>#include <iostream>#include <cmath>using namespace std;double x,y,z, qx,qy,qz, qw;double theta;geometry_msgs::Pose2D pos_now;int main(int argc, char** argv){ ros::init(argc, argv, "tf_Pose_Publisher"); ros::NodeHandle node; ros::Publisher _pose_pub=node.advertise<geometry_msgs::Pose2D>("pose_data", 10); tf::StampedTransform transform; tf::TransformListener listener; ros::Rate rate(10.0); while (ros::ok()){ ros::Time start = ros::Time::now(); cout << "StartTime:"<< start << endl; tf::StampedTransform transform; try{ //得到坐map和坐标base_link之间的关系 listener.waitForTransform("map","base_link", ros::Time(0), ros::Duration(3.0)); listener.lookupTransform("map", "base_link", ros::Time(0), transform); } catch (tf::TransformException &ex) { ROS_ERROR("%s",ex.what()); ros::Duration(1.0).sleep(); } x=transform.getOrigin().x(); y=transform.getOrigin().y(); z=transform.getOrigin().z();tf::Quaternion q = transform.getRotation(); qx = q.x(); qy = q.y(); qz = q.z(); qw = q.w(); pos_now.x = transform.getOrigin().x(); pos_now.y =transform.getOrigin().y(); pos_now.theta = tf::getYaw(q); _pose_pub.publish(pos_now);printf("x: %f, y: %f, z: %f, qx: %f,qy: %f,qz: %f, qw: %f, theta: %f\n",x,y,z,qx,qy,qz,qw,pos_now.theta); rate.sleep(); ros::Time end = ros::Time::now(); cout << "EndTime:"<<end << endl; } return 0;};2.修改makelist文件并编译

添加以下代码到Cmakelist文件

find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs tf)add_executable(CartoTransferPose_main src/CartoTransferPose_main.cc)target_link_libraries(CartoTransferPose_main ${catkin_LIBRARIES})

保存并编译。

3.启动仿真环境并启动节点

首先打开gazebo环境并按之前修改配置启动纯定位模式。 在命令行输入rostopic echo /pose_data。 这里发布的即位姿数据。 在命令行用rosrun启动CartoTransferPose_main节点,出现以下界面。其中x,y,theta即为位姿数据,频率为10hz。

总结

本文配置了Cartographer的纯定位模式,并获取了定位数据,为后续应用做好了铺垫。

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

上一篇:cuda与torch的安装匹配(cuda torch)

下一篇:马哈拉施特拉邦的Varandha Ghat,印度 (© AmitRane1975/iStock/Getty Images Plus)(马哈拉施特拉邦人口)

  • 华为Mate X2触摸屏类型是什么

    华为Mate X2触摸屏类型是什么

  • 小米10充满电需要多长时间呢(小米10冲满电要多久)

    小米10充满电需要多长时间呢(小米10冲满电要多久)

  • iphone8支持反向充电吗(iphone8有没有反向充电)

    iphone8支持反向充电吗(iphone8有没有反向充电)

  • 微信聊天视频删了了在哪里可以找出来(微信聊天视频删除了可以找回来吗)

    微信聊天视频删了了在哪里可以找出来(微信聊天视频删除了可以找回来吗)

  • 为什么标题与正文一起居中(为什么标题与正文没有空白)

    为什么标题与正文一起居中(为什么标题与正文没有空白)

  • 滴滴接完一单就原地等吗(滴滴接了一单之后接不到)

    滴滴接完一单就原地等吗(滴滴接了一单之后接不到)

  • 苹果截图编辑怎么关闭(苹果截图编辑怎么打马赛克)

    苹果截图编辑怎么关闭(苹果截图编辑怎么打马赛克)

  • word文档中图片不显示怎么办(word文档中图片显示不出来怎么办)

    word文档中图片不显示怎么办(word文档中图片显示不出来怎么办)

  • 荣耀畅玩9a处理器相当于骁龙多少(荣耀畅玩9a处理器)

    荣耀畅玩9a处理器相当于骁龙多少(荣耀畅玩9a处理器)

  • 手机一会有网一会没网怎么回事(手机一会有网一会断网是什么问题)

    手机一会有网一会没网怎么回事(手机一会有网一会断网是什么问题)

  • 邮件被退回对方还能收到吗(邮件被退回对方邮箱已满,显示发送成功)

    邮件被退回对方还能收到吗(邮件被退回对方邮箱已满,显示发送成功)

  • 机械硬盘插在主板哪里(机械硬盘插在主板哪个位置图解)

    机械硬盘插在主板哪里(机械硬盘插在主板哪个位置图解)

  • 网易云音乐安装不了(网易云音乐安装失败不兼容)

    网易云音乐安装不了(网易云音乐安装失败不兼容)

  • 快手注销第三项不通过(快手注销账户是什么意思啊)

    快手注销第三项不通过(快手注销账户是什么意思啊)

  • 金山文档文件已过期怎么办(金山文档文件已删除,请联系作者重新分享)

    金山文档文件已过期怎么办(金山文档文件已删除,请联系作者重新分享)

  • ipadproa1701是几代(ipad pro a1701哪年出的)

    ipadproa1701是几代(ipad pro a1701哪年出的)

  • 三合一打印机是什么意思(3合一打印机哪款好)

    三合一打印机是什么意思(3合一打印机哪款好)

  • 米家和小米是什么关系(米家和小米什么关系知乎)

    米家和小米是什么关系(米家和小米什么关系知乎)

  • 苹果11来电怎么不显示名字(苹果11来电怎么不显示归属地)

    苹果11来电怎么不显示名字(苹果11来电怎么不显示归属地)

  • 华为mate20支持面部支付吗(华为mate20可以刷脸解锁吗)

    华为mate20支持面部支付吗(华为mate20可以刷脸解锁吗)

  • cdma是什么意思(中国电信cdma是什么意思)

    cdma是什么意思(中国电信cdma是什么意思)

  • 红米note上面出现耳机模式如何取消(红米手机上方有红点怎么回事)

    红米note上面出现耳机模式如何取消(红米手机上方有红点怎么回事)

  • 微信头像右上角蓝圈什么意思(微信头像右上角有个标志)

    微信头像右上角蓝圈什么意思(微信头像右上角有个标志)

  • 一篇文章理解虚拟滚动原理(本文虚构)

    一篇文章理解虚拟滚动原理(本文虚构)

  • 个人所得税本期收入是扣完保险吗
  • 电汇凭证的会计怎么做账
  • 环评费用怎么入账
  • 分公司可以独立承担法律责任吗
  • 哪个会计科目必须对全部项目发函证
  • 管理会计期末存货计算公式
  • 预提车间租入固定资产租金800元
  • 所得税季度预交税率是多少
  • 开票时间超限怎么办
  • 出纳取备用金需要交税吗
  • 保本销售量的计算公式用安全边际率
  • 预提费用账户期末
  • 私营独资企业可以变更法人吗
  • 应计入企业存货成本有哪些
  • 土地增值税清算是什么意思
  • 收到客户定金账务怎么做
  • 货物已到发票未到怎么做账
  • 专票开户行和账号必须填吗
  • 房地产开发企业资质等级有几个
  • 电子发票隔月可以报销吗
  • 蔬菜免税会计分录怎么做
  • 建筑工程预收款预缴增值税的时间
  • 行政单位缴纳罚款如何记账
  • 农村合作社纳税零申报
  • 装修工程需要预缴吗
  • 资产总额从业人数
  • 货币资金核算流程设计
  • 怎么访问海康硬盘录像机
  • 股东投资如何做账务处理
  • win10怎么显示隐藏的硬盘
  • php bcmul
  • 苹果手机连接电脑
  • 新手会计怎么做分录
  • php现在
  • PHP:clearstatcache()的用法_Filesystem函数
  • 企业备用金管理制度规定
  • yolo 源码
  • spring 异常
  • laravel5.4生成验证码的实例讲解
  • 自然人股东是
  • css去掉项目符号
  • vue3引入图片
  • vue viewui
  • 真正的出道仙谁来封
  • cvpr2020目标跟踪
  • 电脑培训网络教学
  • fastdfs和minio哪个好
  • mongodb的配置文件
  • phpcms api
  • 一般纳税人按简易办法计税销售额
  • 建筑业开票税点
  • 增值税发票抵扣联的作用
  • 股权变更涉及土地增值税吗
  • 哪些固定资产是负债类
  • 原材料不足
  • 应付职工薪酬多计提了如何冲掉
  • 行政事业单位其他收入
  • 电影院分成比例
  • 设备融资租赁会上征信吗
  • 哪个行业的会计最难
  • 商业企业进货会计分录
  • mysql80安装配置教程
  • mysql数据库迁移方案
  • mysql索引数据结构有哪些
  • doc怎么使用
  • 2tb的硬盘够用吗
  • centos查看硬盘信息的命令
  • 应用商店windows
  • ubuntu 系统卡住
  • 怎么把win8界面换成win7
  • windows8_os
  • 深入理解
  • windows常用命令操作
  • Lesson01_05 HTML中的超链接
  • bootstrap怎么学
  • js如何引用
  • 范冰冰魔范学院杂志可爱公主风
  • jquery操作样式的方法
  • 全国企业信用信息系统网官网
  • 北京市国家税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设