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

  • 酷狗vip怎么退订自动续费(酷狗vip怎么退订自动续费安卓)

    酷狗vip怎么退订自动续费(酷狗vip怎么退订自动续费安卓)

  • opporeno2支持多少瓦的快充(opporeno2支持多少w)

    opporeno2支持多少瓦的快充(opporeno2支持多少w)

  • 删好友后再加回来巨轮能恢复吗(删好友后再加回来对方知道吗)

    删好友后再加回来巨轮能恢复吗(删好友后再加回来对方知道吗)

  • 微信里图片怎么打印(微信里图片怎么变表情包)

    微信里图片怎么打印(微信里图片怎么变表情包)

  • 光环助手验证无法通过(光环助手无法验证怎么办)

    光环助手验证无法通过(光环助手无法验证怎么办)

  • 小米10充电要多久时间(小米10充电多少A)

    小米10充电要多久时间(小米10充电多少A)

  • 举报卖家卖家会知道id吗(举报卖家卖家会知道吗)

    举报卖家卖家会知道id吗(举报卖家卖家会知道吗)

  • x23怎么关掉红外被遮挡(x23怎么关掉红外遥控功能)

    x23怎么关掉红外被遮挡(x23怎么关掉红外遥控功能)

  • 荣耀play4tpro有nfc吗(荣耀play4tpro有没有nfc功能)

    荣耀play4tpro有nfc吗(荣耀play4tpro有没有nfc功能)

  • 键盘指示灯亮着 按键全部失效了怎么办(键盘指示灯亮着 按键全部失效,还有声音)

    键盘指示灯亮着 按键全部失效了怎么办(键盘指示灯亮着 按键全部失效,还有声音)

  • 淘宝消息橙色感叹号(淘宝消息橙色感叹号提示)

    淘宝消息橙色感叹号(淘宝消息橙色感叹号提示)

  • 硅胶手机套影响信号吗(硅胶手机套会影响手机信号吗)

    硅胶手机套影响信号吗(硅胶手机套会影响手机信号吗)

  • 苹果19年出了几款手机(苹果19年出了几代手机)

    苹果19年出了几款手机(苹果19年出了几代手机)

  • iphonexsmax满电可以用多久(xsmax满电一直玩能用多久)

    iphonexsmax满电可以用多久(xsmax满电一直玩能用多久)

  • dns根域名解析失败有什么影响(dns根域名解析失败怎样修复)

    dns根域名解析失败有什么影响(dns根域名解析失败怎样修复)

  • 蚀刻机和光刻机区别(蚀刻机和光刻机哪个厉害)

    蚀刻机和光刻机区别(蚀刻机和光刻机哪个厉害)

  • 你拨叫的用户暂时无人接听是什么意思(你拨叫的用户暂时无权接听是什么意思)

    你拨叫的用户暂时无人接听是什么意思(你拨叫的用户暂时无权接听是什么意思)

  • 货拉拉每天都可以提现吗(货拉拉每天可以接到单吗)

    货拉拉每天都可以提现吗(货拉拉每天可以接到单吗)

  • 手机屏幕漏液敢充电不(手机屏幕漏液了会扩散吗)

    手机屏幕漏液敢充电不(手机屏幕漏液了会扩散吗)

  • vivoy3骁龙多少(vivoy3高通骁龙多少)

    vivoy3骁龙多少(vivoy3高通骁龙多少)

  • 快手戳了别人怎么取消(快手戳了别人怎么删除)

    快手戳了别人怎么取消(快手戳了别人怎么删除)

  • 荣耀20解锁方式有几种(华为荣耀20屏幕锁怎么解)

    荣耀20解锁方式有几种(华为荣耀20屏幕锁怎么解)

  • 调制解调器的作用是详细介绍(调制解调器的作用包括)

    调制解调器的作用是详细介绍(调制解调器的作用包括)

  • 期初未缴税额是什么意思
  • 非正常损失的进项税额转出公式
  • 低值易耗品包括哪些东西和产品
  • 工会基金是扣个人还是扣企业的
  • 计算产品当月生产成本
  • 赠送车子需要过户吗
  • 预算管理的方法及应用
  • 交车辆购置税需要开车去吗
  • 上年度亏损用什么弥补
  • 有形资产净值是指
  • 银行代付工资如何做财务处理合适?
  • 出口退税进项税额可以抵扣吗
  • 企业退休返聘人员工资是否缴纳单位社保
  • 当月支付租金没有发票
  • 人身意外伤害险保障范围
  • 通用机打发票上面为什么不体现税率
  • 个人所得税任职受雇信息有影响吗
  • 销售净利润率是综合反映企业成本效益的重要指标
  • 重点税源财务指标有哪些
  • 进项税转出如何申报纳税
  • 烟酒专用发票能抵税吗
  • 一般企业可以开检测费吗
  • 印花税减半再减半政策文件是什么
  • 增值税一般纳税人是什么意思
  • 苹果手机发票要验证码吗
  • 购材料有折让如何做会计分录?
  • win10系统的任务栏
  • 电脑系统如何安装字体
  • mmc.exe是什么进程
  • 债务人以固定资产债务重组
  • 前端加密后端解密代码
  • 应收借方表示什么
  • 员工旅游费的税率是多少
  • 进项税年末结转分录
  • hbuilderx安装教程视频
  • 人体姿态识别国内外研究现状
  • 个体工商户一年要交多少税
  • 物流公司账务处理特点
  • 公允价值怎么记账
  • 企业银行电子回单一般什么时候打印
  • python的utils模块
  • python转换数字
  • 应收帐款质保金
  • 甲供材入账
  • 停车费定额发票有效期是多久
  • 计提提成是什么意思
  • 销售车位怎么找客户
  • 配件及修理费
  • 结转全年利润总额
  • mongodb操作
  • 纳税人的进项税额怎么算
  • 投资者向企业投入资本的形式
  • 红字更正法和红字冲销
  • 违约金从货款中扣除如何记账
  • 现金流量表的编制基础是权责发生制
  • 分公司做账报税
  • 私营企业算固定收入吗
  • mysql语句删除表
  • sql中varchar和number比较
  • mysql newid()
  • sqlsever修改数据
  • windowsxp无法定位程序输入点
  • desl.exe是什么
  • 如何在win7系统中查看电脑基本信息
  • win7共享失败
  • win10任务栏怎么变成透明
  • cocos2d原理
  • opengl模块加载失败
  • vs opengl配置
  • perl常用函数
  • android中handler机制
  • unity游戏开发的技术
  • javascript基础教程pdf下载
  • javascript零基础入门
  • java script入门
  • 天津国税电话
  • 企业房产税优惠减免政策2020
  • 贝壳的贝壳分
  • 北京税务局网站官网
  • 税务局直属机构
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设