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

  • 小米手机公交卡nfc怎么用(小米手机公交卡可以在手环上用吗)

    小米手机公交卡nfc怎么用(小米手机公交卡可以在手环上用吗)

  • cr2怎么打开(cr2怎么打开手机)

    cr2怎么打开(cr2怎么打开手机)

  • 华为怎么屏幕录制(华为怎么屏幕录制锁屏)

    华为怎么屏幕录制(华为怎么屏幕录制锁屏)

  • 西瓜视频注销账号审核需要多久(西瓜视频注销账号 多久可以注册)

    西瓜视频注销账号审核需要多久(西瓜视频注销账号 多久可以注册)

  • 没有原彩显示了怎么办(没原彩显示就不是原装屏幕吗)

    没有原彩显示了怎么办(没原彩显示就不是原装屏幕吗)

  • 淘宝封号是什么状态(淘宝封号是什么意思)

    淘宝封号是什么状态(淘宝封号是什么意思)

  • 闲鱼注销了淘宝还在吗(闲鱼账号)

    闲鱼注销了淘宝还在吗(闲鱼账号)

  • medal00是什么手机型号(medal00是什么型号多少钱)

    medal00是什么手机型号(medal00是什么型号多少钱)

  • 显示器坏了有必要修吗(显示器坏了有必要换吗)

    显示器坏了有必要修吗(显示器坏了有必要换吗)

  • 多闪卸载了别人还会看见吗(多闪app怎么卸载)

    多闪卸载了别人还会看见吗(多闪app怎么卸载)

  • 携程钻石会员有什么用(携程钻石会员有什么优惠)

    携程钻石会员有什么用(携程钻石会员有什么优惠)

  • 怎么设置定时发朋友圈(怎么设置定时发送消息)

    怎么设置定时发朋友圈(怎么设置定时发送消息)

  • 无线快充对手机有没有影响(无线快充对手机有影响吗)

    无线快充对手机有没有影响(无线快充对手机有影响吗)

  • 退出微信群还能恢复吗(退出微信群还能看到以前的信息吗)

    退出微信群还能恢复吗(退出微信群还能看到以前的信息吗)

  • 快手怎么自动播放下一个(快手怎么自动播放下一首)

    快手怎么自动播放下一个(快手怎么自动播放下一首)

  • 6splus屏幕尺寸(6splus屏幕尺寸和6plus)

    6splus屏幕尺寸(6splus屏幕尺寸和6plus)

  • 魅族16th和plus区别(魅族16th和plus买哪个)

    魅族16th和plus区别(魅族16th和plus买哪个)

  • vivo系统应用在哪(vivo手机应用系统在哪)

    vivo系统应用在哪(vivo手机应用系统在哪)

  • 电脑怎么弄ie浏览器(电脑怎么弄ie浏览器模式)

    电脑怎么弄ie浏览器(电脑怎么弄ie浏览器模式)

  • 利用ftp进行文件传输时主要安全问题存在于(利用ftp进行文件管理)

    利用ftp进行文件传输时主要安全问题存在于(利用ftp进行文件管理)

  • 用友t3反结账怎么操作(用友t3反结算)

    用友t3反结账怎么操作(用友t3反结算)

  • 在Win7系统中如何更换开机声音?(win7系统中如何关闭触摸屏声音)

    在Win7系统中如何更换开机声音?(win7系统中如何关闭触摸屏声音)

  • 电脑的aero开启教程(电脑启用aero)

    电脑的aero开启教程(电脑启用aero)

  • 夜间潜水时发现的章鱼,夏威夷科纳附近 (© Jeff Milisen/Alamy)(夜间潜水时发现水体)

    夜间潜水时发现的章鱼,夏威夷科纳附近 (© Jeff Milisen/Alamy)(夜间潜水时发现水体)

  • web前端-JavaScript中的函数(创建,参数,返回值,方法,函数作用域,立即执行函数)(Web前端开发用什么软件)

    web前端-JavaScript中的函数(创建,参数,返回值,方法,函数作用域,立即执行函数)(Web前端开发用什么软件)

  • 出口税率和出口关税税率一样吗
  • 定期定额征收的个体户怎么报个人所得税
  • 开发票价格能否比实际金额高
  • 普票能抵扣多少
  • 研发支出期末余额列报
  • 个人借款给公司利息收入要交税吗
  • 汽车折旧年限 税法
  • 菜场摊位租赁合同
  • 其他预算收入科目核算内容
  • 购进材料无发票会计分录
  • 新车车牌照
  • 暂扣员工工资怎么做账
  • 个人所得税法规定可减征个税的情形有
  • 利用发票管税的意义
  • 个税申报方式可以修改去年的吗
  • 股权转让企业所得税如何申报
  • 税控设备实际抵减增值税时如何做分录?
  • 房产契税什么时候可以退
  • 收到个人缴纳的办证费
  • 企业报税网上申报好了怎么导入
  • 个体户怎
  • 专用发票可以抵扣吗
  • 七喜v8笔记本
  • 个人非货币性资产投资个人所得税
  • 如何进入企业年报系统
  • wordpress更改字体
  • 增值税务发票怎么作废
  • 发票认证了但是没收到票怎么处理
  • php扩展ffmpeg教程
  • agmservice.exe是什么
  • 银行承兑汇票的会计分录
  • 利润分配的账务处理如何做
  • 落枕怎么办怎么治疗
  • 预付装修款账务处理
  • annaconda安装opencv
  • 立陶宛广场
  • php执行linux命令无效
  • 本月增加的无形资产数量
  • php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
  • php搜索代码
  • ps填头发
  • 施工单位奖金分配方案
  • 农副产品免税了还需要缴纳个人所得税吗
  • 会计准则中规范性的内容
  • 未分配利润处理顺序
  • 购入固定资产如何交所得税
  • 辅导费入什么科目
  • 建安企业用什么会计制度
  • 滞纳金比例多少
  • 资产负债表期初余额和期末余额
  • 公示信息有误如何修改
  • 资产质量的相对性举例说明
  • 明细账的设置与登记
  • 非营利医疗机构免征哪几种税
  • mysql连接查询和子查询效率
  • mybatis分页插件的原理
  • mysql日志有哪些
  • macbook appstore在哪
  • linux命令提示符不见了
  • u极速u盘装系统
  • chia 如何双挖
  • 苹果电脑安装虚拟机会有什么影响
  • window10的连接功能
  • window10的小娜不支持中文版
  • ubuntu操作
  • cocos 源码
  • div li
  • cocos2dx减少内存开销
  • javascriptz
  • nodejs发送图片给前端
  • 网络很强大
  • javascript中array数组对象的含义及常用方法
  • jquery修改字体
  • 红杏是什么意思什么样的
  • Android eclipse for mac redo 快捷键
  • vs开发unity教程
  • python 遍历数组
  • 出口退税是否缴纳所得税
  • 技术服务费减免企业所得税政策
  • 最新专票税率几个档
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设