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

  • 数字时代,成功CMO的七大品质(数字时代带来了什么)

    数字时代,成功CMO的七大品质(数字时代带来了什么)

  • 听说你的广告很难做,再给你三个建议!(听说很好吃 广告)

    听说你的广告很难做,再给你三个建议!(听说很好吃 广告)

  • 三星watch4颜色(三星手表颜色为嘛是黑白)

    三星watch4颜色(三星手表颜色为嘛是黑白)

  • excel如何取消小数自动进位(excel如何取消小数点后的零)

    excel如何取消小数自动进位(excel如何取消小数点后的零)

  • 页眉页脚的设置方法是什么(页眉页脚的设置可以奇偶页不同吗)

    页眉页脚的设置方法是什么(页眉页脚的设置可以奇偶页不同吗)

  • vivo账号过期怎么退出登录(vivo账号过期怎么删除)

    vivo账号过期怎么退出登录(vivo账号过期怎么删除)

  • airpod连接后还是外放(airpods显示已连接,但是没有声音)

    airpod连接后还是外放(airpods显示已连接,但是没有声音)

  • 怎么关闭qq资料封面(怎么关闭QQ资料卡点赞功能)

    怎么关闭qq资料封面(怎么关闭QQ资料卡点赞功能)

  • 苹果十一64g够用吗

    苹果十一64g够用吗

  • 路由器速率怎么选择(路由器速率怎么设置最快)

    路由器速率怎么选择(路由器速率怎么设置最快)

  • 苹果8可以升级13.4.1吗(苹果8可以升级13嘛)

    苹果8可以升级13.4.1吗(苹果8可以升级13嘛)

  • 华为手机莫名其妙黑屏(华为手机莫名其妙关机怎么回事)

    华为手机莫名其妙黑屏(华为手机莫名其妙关机怎么回事)

  • hnor是什么牌子手机(honor是什么商标)

    hnor是什么牌子手机(honor是什么商标)

  • mate30pro5G是单模还是双模(华为mate30pro5g支持双模吗)

    mate30pro5G是单模还是双模(华为mate30pro5g支持双模吗)

  • 酷游为什么下线(酷游还会重新开吗?)

    酷游为什么下线(酷游还会重新开吗?)

  • 三星s9为什么突然充电很慢(三星s9问题)

    三星s9为什么突然充电很慢(三星s9问题)

  • 微信删除后重新下载聊天记录还在吗(微信删除后重新下载后怎么恢复群聊)

    微信删除后重新下载聊天记录还在吗(微信删除后重新下载后怎么恢复群聊)

  • 苹果a1699内存多大(苹果a1699多少g)

    苹果a1699内存多大(苹果a1699多少g)

  • 抖音地址是自动定位吗(抖音地址自动变化)

    抖音地址是自动定位吗(抖音地址自动变化)

  • 苹果手表蜂窝支持地区(苹果手表蜂窝支持电信卡吗)

    苹果手表蜂窝支持地区(苹果手表蜂窝支持电信卡吗)

  • ie10兼容视图怎么设置(第三次换证是多少年)

    ie10兼容视图怎么设置(第三次换证是多少年)

  • 携程不用优享套餐怎么操作(携程优享服务费怎么退)

    携程不用优享套餐怎么操作(携程优享服务费怎么退)

  • 华为hd标志怎么去掉(华为屏幕上的hd)

    华为hd标志怎么去掉(华为屏幕上的hd)

  • 电脑怎么自动调整时间(电脑怎么自动调整桌面尺寸)

    电脑怎么自动调整时间(电脑怎么自动调整桌面尺寸)

  • qq视频怎么保存到相册(qq视频怎么保存到u盘)

    qq视频怎么保存到相册(qq视频怎么保存到u盘)

  • 蚂蚁森林怎么恢复(蚂蚁森林怎么恢复原来界面)

    蚂蚁森林怎么恢复(蚂蚁森林怎么恢复原来界面)

  • 手机管家清理的照片怎么恢复(手机管家清理的照片和视频怎么恢复)

    手机管家清理的照片怎么恢复(手机管家清理的照片和视频怎么恢复)

  • 号被盗了怎么冻结(号被盗了怎么冻结账号)

    号被盗了怎么冻结(号被盗了怎么冻结账号)

  • 土地使用税计入税金及附加吗
  • 小规模纳税人怎么变成一般纳税人
  • 小型微利企业企业所得税优惠政策2021年
  • 固定资产盘亏计入什么科目
  • 没有签订购销合同的协议
  • 制造业交新型墙体材料专项基金款分录
  • 咨询服务费是否可以税前扣除
  • 水利基金的计税基础是什么
  • 高新企业财务做账要求
  • 费用,资产,成本,损失的区别
  • 企业重组 资产重组
  • 超市收代金券如何处理
  • 无偿转让股权需要交什么税
  • 电脑屏幕突然黑屏怎么回事
  • 工地购买的零星材料计入什么科目
  • 企业存款利息收入要交哪些税
  • 企业所得税税前扣除凭证规定
  • php可变参数
  • php file_get_contents 读取图片
  • uniapp h5发布
  • linux中free命令详解
  • 新成立股份有限公司股本构成
  • igfxhk.exe是什么进程
  • 另一种答案
  • php proto
  • 金融资产的会计处理方法
  • 提前支付的费用记账
  • 如何做商品批发
  • 税款滞纳金会计处理
  • 劳务费可以抵扣进项吗
  • js鼠标键盘事件
  • Pytorch深度学习实战3-6:详解网络骨架模块nn.Module(附实例)
  • 3分钟认识Vue3的v-model
  • 应付票据是商业承兑汇票吗
  • 主营营业成本会计分录
  • 购买保健食品
  • 已抵扣增值税进项税额
  • 债权债务转让会计分录
  • 其他应收款如何平账
  • 计税工资什么意思2019
  • 非营利组织注册
  • 外购商品用于宣传需要缴纳增值税吗
  • 金税盘抵扣的结转会计分录
  • 安家费有税吗
  • 跨年暂估成本如何冲销
  • 工程结算在资产中的作用
  • 银行印鉴变更申请书范本
  • 应交增值税为什么在借方
  • 没有销售怎么写总结
  • 银行承兑汇票记载事项
  • 工程担保属于什么
  • win7端口怎么查看
  • centos 6.6安装教程
  • 苹果mac无法连接网络
  • centos怎么看硬盘
  • Win10 Mobile 10572 预览版已修复和已知问题汇总
  • linux vim
  • win7 注册表
  • centos etc
  • xp系统的设置在哪里
  • win8.1安装应用商店
  • 在linux中使用什么可以执行shell脚本
  • 关于我和鬼变成家人的那件事
  • 游戏编程设计模拟软件
  • linux的shell脚本编程
  • linux用户文件权限
  • python获取命令行执行命令的输出
  • easyui搜索框
  • unity3d碰撞体
  • android长按app快捷功能
  • nodejs cgi
  • unity mesh编程
  • Unity multiplayer
  • 北京税务局网上怎么登录
  • 税务协查函格式 范文
  • 保险代理人非公司员工
  • 如何查看税务登记记号
  • 进项税发票过期了怎么办
  • 公司租商铺
  • 税务申报按季度申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设