位置: 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)(马哈拉施特拉邦人口)

  • 浅谈一个有想法的推广员所具备的五点素质(浅谈一个有想法的人作文)

    浅谈一个有想法的推广员所具备的五点素质(浅谈一个有想法的人作文)

  • 微信绑定银行卡里的钱怎么转到微信里(微信绑定银行卡安全吗?会被盗取吗?)

    微信绑定银行卡里的钱怎么转到微信里(微信绑定银行卡安全吗?会被盗取吗?)

  • 如何关闭airpods自动读信息(如何关闭airpods定位)

    如何关闭airpods自动读信息(如何关闭airpods定位)

  • 华为手机新品5g怎么截屏(华为手机新品5g多少钱)

    华为手机新品5g怎么截屏(华为手机新品5g多少钱)

  • 平板电脑可以用先锋影音吗(平板电脑可以用ps软件吗)

    平板电脑可以用先锋影音吗(平板电脑可以用ps软件吗)

  • 微信怎么移除群员(微信怎么移除群聊的人员)

    微信怎么移除群员(微信怎么移除群聊的人员)

  • iphone录屏没有保存怎么办(苹果手机录屏没有保存就没有了怎么办)

    iphone录屏没有保存怎么办(苹果手机录屏没有保存就没有了怎么办)

  • 搜电充电宝忘记归还怎么计费(搜电充电宝忘记还了拿回家能用吗)

    搜电充电宝忘记归还怎么计费(搜电充电宝忘记还了拿回家能用吗)

  • 淘宝卖家该怎么看总收入(淘宝卖家怎么进入自己的店铺)

    淘宝卖家该怎么看总收入(淘宝卖家怎么进入自己的店铺)

  • 微信验证频繁多久解除(微信验证频繁多久可以恢复)

    微信验证频繁多久解除(微信验证频繁多久可以恢复)

  • 苹果能改成右侧左滑吗(iphone能改成右侧左滑吗)

    苹果能改成右侧左滑吗(iphone能改成右侧左滑吗)

  • 华为卡槽怎么放卡(华为卡槽怎么放两张卡图解视频)

    华为卡槽怎么放卡(华为卡槽怎么放两张卡图解视频)

  • whql支持要不要开

    whql支持要不要开

  • 微软设备健康助手可以卸载吗(微软设备健康助手可以禁止启动吗)

    微软设备健康助手可以卸载吗(微软设备健康助手可以禁止启动吗)

  • 虎牙电脑版怎么看回放(虎牙电脑版怎么多屏同看)

    虎牙电脑版怎么看回放(虎牙电脑版怎么多屏同看)

  • watch 4如何开机(watch4如何开机)

    watch 4如何开机(watch4如何开机)

  • 抖音和快手有什么区别(抖音和快手有什么区别,普通人该如何选择)

    抖音和快手有什么区别(抖音和快手有什么区别,普通人该如何选择)

  • 荣耀20能双击唤醒屏幕吗(荣耀20手机怎么双击唤醒屏幕)

    荣耀20能双击唤醒屏幕吗(荣耀20手机怎么双击唤醒屏幕)

  • mpeg是什么意思(mpeg是什么意思中文翻译)

    mpeg是什么意思(mpeg是什么意思中文翻译)

  • 鼠标器的基本操作有单击双击右击和什么(鼠标器的基本操作)

    鼠标器的基本操作有单击双击右击和什么(鼠标器的基本操作)

  • 大数据的意义包括(大数据的意义包括什么)

    大数据的意义包括(大数据的意义包括什么)

  • 什么是设计绘图(什么叫设计图)

    什么是设计绘图(什么叫设计图)

  • 电脑关机快捷键是哪个(电脑关机快捷键是什么)

    电脑关机快捷键是哪个(电脑关机快捷键是什么)

  • 手机如何取消情侣空间(在手机上怎么取消亲情号)

    手机如何取消情侣空间(在手机上怎么取消亲情号)

  • 退货单号是什么

    退货单号是什么

  • 虾米音乐下载到u盘里(虾米音乐下载到本地)

    虾米音乐下载到u盘里(虾米音乐下载到本地)

  • vue怎么分段加字幕(vue 分号)

    vue怎么分段加字幕(vue 分号)

  • iphone6怎么取消扣费(iphone6怎么取消自动续费)

    iphone6怎么取消扣费(iphone6怎么取消自动续费)

  • win10怎么设置gif壁纸(WIN10怎么设置锁屏时间)

    win10怎么设置gif壁纸(WIN10怎么设置锁屏时间)

  • 手机一开机就显示热点资讯,怎样删除(手机一开机就显示输入法)

    手机一开机就显示热点资讯,怎样删除(手机一开机就显示输入法)

  • 金税四期不会对个人产生影响
  • 税收对国家的影响及地位
  • 增值税纳税申报表附列资料(三)
  • 交易性资产入账金额和入账金额区别
  • 营业外收入是否属于当期损益
  • 为员工购买商业保险专票可以抵扣吗
  • 金蝶kis 反结账
  • 企业应交所得税怎么算
  • 购进客房用品取得增值税专用发票注明税额9120
  • 固定资产领用流程图
  • 代扣代缴税种有几个
  • 工程交税需要什么资料
  • 各省市地税发票怎么开
  • 不同税率的产品可以开一张票里吗
  • 装修费属于劳务费吗
  • 公司支付广告费怎么入账
  • 如何冲销账面上的资金
  • 往期从价房产税未申报怎么处理
  • 固定资产和在建工程占所有者权益的占比
  • 坏账准备年末结账要结清吗
  • 企业或公司的证明怎么弄
  • 评估增值的账务处理
  • 应收账款平均余额怎么理解
  • 微软正在测试什么意思
  • 销售收入的暂估入账
  • koeids.dll
  • pos机未入账怎么回事
  • 哪些费用可以计入开办费
  • 低值易耗品的管理和流程ppt
  • ghoststarttrayapp.exe是什么进程 有什么作用 ghoststarttrayapp进程查询
  • php保留两位小数的函数
  • phpwhile用法
  • 若依管理系统前端代码分析
  • PHP:imageloadfont()的用法_GD库图像处理函数
  • php框架symfony
  • 企业采购过程中发生的材料短缺
  • 现金流量表的编报时间有
  • 百度飞桨paddle
  • 非成品柴油用途
  • 广播影视服务需要许可证吗
  • 减税性质代码及名称农业
  • 叶面积指数名词解释
  • string对象放在哪里
  • 建筑企业增值税收入确认时间
  • 小规模纳税人如何开专票
  • mongodb怎么用
  • 全面理解健康教案
  • 一般纳税人之间转让土地使用权交哪些税金
  • 企业应纳税总额怎么算
  • 金税四期上线企业还活吗
  • 经济纠纷引发的抢劫
  • 代建项目谁付款
  • 增值税申报开具其他发票包含哪些
  • 用于研发样品出口收汇国际收支申报
  • 个人独资企业缴纳社保享受优惠么
  • 辞退补偿金入什么科目
  • 建账前应该考虑哪些问题
  • sql语句排除重复数据
  • coms恢复出厂设定还原bios设置方法步骤讲解
  • WIN7系统屏幕亮度哪里设置
  • linux连接vps
  • hc off line什么意思
  • Win10 Mobile 14342.1004快速预览版更新 提升电池续航
  • bat批处理命令大全
  • cmd 远程登录
  • windows安装pycharm
  • javascript代码写在哪个标签里
  • bash 入门
  • cmd新建
  • jquery控制滚动条位置
  • 防止sql注入php
  • android 控件居中
  • unity3d quaternion
  • javascript定律
  • javascript基础笔记
  • python二叉树的遍历算法
  • 农机行业的市场前景
  • 话费的发票可以做费用吗
  • 四川电子税务局网上办税大厅
  • 宝鸡二套房契税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设