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

  • 互联网创业成功的秘密,超级软文营销 (互联网创业成功的原因)

    互联网创业成功的秘密,超级软文营销 (互联网创业成功的原因)

  • 淘宝换了货还能退吗(淘宝换货还能用运费险吗)

    淘宝换了货还能退吗(淘宝换货还能用运费险吗)

  • 拼多多如何关闭拼小圈功能(拼多多如何关闭拼小圈的购买记录)

    拼多多如何关闭拼小圈功能(拼多多如何关闭拼小圈的购买记录)

  • 小米耳机99和199区别(小米耳机699和799)

    小米耳机99和199区别(小米耳机699和799)

  • 电脑复制粘贴快捷键ctrl加什么(电脑复制粘贴快捷键怎样操作)

    电脑复制粘贴快捷键ctrl加什么(电脑复制粘贴快捷键怎样操作)

  • 怎么截取电影一段视频(怎么截取电影一段)

    怎么截取电影一段视频(怎么截取电影一段)

  • 手机红外用处大吗(手机红外能干啥)

    手机红外用处大吗(手机红外能干啥)

  • 华为喇叭突然沙哑(华为手机喇叭突然坏了)

    华为喇叭突然沙哑(华为手机喇叭突然坏了)

  • 淘宝举报结果可以在哪里看(淘宝举报结果可以撤销吗)

    淘宝举报结果可以在哪里看(淘宝举报结果可以撤销吗)

  • 三星s10气密性数值一般多少(三星s10气密性数值998)

    三星s10气密性数值一般多少(三星s10气密性数值998)

  • 铅酸电池每次必须充满电吗(铅酸电池需要充多久)

    铅酸电池每次必须充满电吗(铅酸电池需要充多久)

  • 华为pay是什么意思(什么叫华为pay)

    华为pay是什么意思(什么叫华为pay)

  • 平板键盘在中间怎么放到下面(平板键盘在中间怎么放到下面 视频)

    平板键盘在中间怎么放到下面(平板键盘在中间怎么放到下面 视频)

  • 拼多多通讯录好友在哪里(拼多多通讯录好友怎么找)

    拼多多通讯录好友在哪里(拼多多通讯录好友怎么找)

  • 怎样将文字方向变为竖行(如何把文字方向反过来)

    怎样将文字方向变为竖行(如何把文字方向反过来)

  • oppoa11手机呼吸灯在哪(oppo手机呼吸灯一直闪烁怎么关闭)

    oppoa11手机呼吸灯在哪(oppo手机呼吸灯一直闪烁怎么关闭)

  • lldtl10是什么型号(lld一al10是什么型号外形样子)

    lldtl10是什么型号(lld一al10是什么型号外形样子)

  • 苹果1524是什么型号(苹果1524是什么手机)

    苹果1524是什么型号(苹果1524是什么手机)

  • 小米8怎么看电池寿命(小米8怎么看电池)

    小米8怎么看电池寿命(小米8怎么看电池)

  • ps打印照片怎么排版(ps打印照片怎么设置)

    ps打印照片怎么排版(ps打印照片怎么设置)

  • 截图默认保存在哪(屏幕截图保存在)

    截图默认保存在哪(屏幕截图保存在)

  • 苹果8怎样改备忘录名(苹果8怎样改备忘录密码)

    苹果8怎样改备忘录名(苹果8怎样改备忘录密码)

  • i79700k配什么主板(i79700k配什么主板性价比高)

    i79700k配什么主板(i79700k配什么主板性价比高)

  • nex3是什么手机(nex3是什么手机牌子)

    nex3是什么手机(nex3是什么手机牌子)

  • iqoo手机支持type耳机吗(iqoo手机支持hdmi输出吗)

    iqoo手机支持type耳机吗(iqoo手机支持hdmi输出吗)

  • 如何看微信玩多长时间(怎么知道微信玩了多少天)

    如何看微信玩多长时间(怎么知道微信玩了多少天)

  • 如何免费下载QQ音乐付费歌曲(如何免费下载qq付费音乐)

    如何免费下载QQ音乐付费歌曲(如何免费下载qq付费音乐)

  • 公司购买的车辆可以抵扣进项税吗
  • 非居民个人如何认定
  • 应收款为负数怎么做分录
  • 生产企业的基础设施是指
  • 一般纳税人当月生效次月生效有什么区别
  • 已付款收不到发票怎么办
  • 施工企业的成本会计对象
  • 会计差错更正业务处理怎么操作?
  • 之前付过款回来收到发票应该怎么做凭证
  • 交易性金融资产的交易费用计入哪里
  • 机械设备租赁征求意见稿
  • 如何选一般纳税人还是小规模纳税人合作?
  • 视频制作费属于劳务费吗
  • 开票资料上的电话可以是手机吗?
  • 房开企业增值税确认收入时间
  • 科目余额表借方和贷方
  • 企业核算方法
  • 一般纳税人申报哪些税种
  • 应交税费核算
  • deepin20.1怎么样
  • 非房地产企业的基建管理办法
  • 建筑公司分包
  • 基本户被冻结了一般户可以发工资吗
  • 个体户工商年报异常怎么解除
  • 你需要权限来执行操作是怎么回事
  • 外汇账户转账有手续费吗
  • win10待机唤醒黑屏死机
  • 应付帐款借方余额怎么算
  • 专项应付款转资本公积需要什么附件
  • php字符
  • promise async区别
  • 微信php开发包
  • yolov5 output
  • php比较大小的函数
  • 残保金是应交税金吗
  • 支付职工差旅费发生的现金流出
  • 纳税申报需要报哪些税
  • 企业所得税是先预缴吗
  • 一般纳税人季报还是月报
  • 购买保健食品
  • js怎么执行函数
  • 按工资申报的工龄怎么算
  • 年收入1500万是富人吗
  • 物业公司物业费税率是多少
  • 员工误餐费是否缴纳个人所得税
  • 企业专利权拥有人是指
  • 存款利息收入应计入收入总额吗
  • 发放福利视同销售进项税要转出吗?
  • 开办费计入什么科盿
  • 稳岗返还资金最新账务处理
  • 什么情况没有排卵期
  • 对外公司
  • 利润太高,如何调产品收发存
  • 财务费用是负数什么意思
  • 企业购车购置税怎么算
  • 当月开通的业务当月能取消吗
  • 建筑工程购买的搬运设备升降平台分录
  • 利润表季度申报本月金额却怎么填
  • linux.iso在哪里
  • linux查inode
  • Windows PC用iCloud多设备共享数据图文教程
  • Win10 Mobile 10572 预览版已修复和已知问题汇总
  • linux7修改ssh端口
  • win传统桌面
  • xp系统电源设置在哪里
  • Win10系统安装包
  • 如何配置无线网络路由器
  • unity用visual
  • 简单的jquery插件实例
  • Node.js中的事件循环是什么
  • javascript用处
  • javascript的主要内容
  • 1、Android Studio创建android项目
  • python爬取电视剧
  • bootstrap轮播效果
  • 税务局三级主办是副科吗
  • 四川召开延迟退休座谈会
  • 北京 国税局
  • 为什么非贸易付不了款呢
  • 土地税是怎么缴纳按什么缴纳
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设