关于cartographer建立正确关系树的理解

2023-05-16

在这里插入图片描述
正确的TF关系map----odom----base_link----laser
base_link是固定在机器人本体上的坐标系,通常选择飞控
其中map–odom 的链接是由cartographer中lua文件配置完成的

map_frame = "map",
tracking_frame = "base_link",
published_frame = "base_link",
odom_frame = "odom",

base_link----laser的链接是在启动rplidar节点的时候有tf_static完成的

  <node pkg="tf" name="tf_lidar" type="static_transform_publisher" args="0 0 0 0 0 0 base_link laser 10"/>

下面分两种情况在剖析TF关系的变化
1、cartographer不使用px4飞控的imu消息 /mavros/imu/data
因为在建图过程中没有引入px4所以base_link,TF关系中暂时没有加入base_link
lua中配置关系,cartographer追踪的的laser的位置,发布pos使用的也是laser的id。但是此时有一个问题,节点中报错**Could not compute submap fading: Could not find a connection between ‘map’ and ‘base_link’ because they are not part of the same tree.Tf has two or more unconnected trees.**base_link和map链接关系是断开的,地图中飞机的位置是不动的。

 map_frame = "map",
 tracking_frame = "laser",
 published_frame = "laser",
 odom_frame = "odom",
 provide_odom_frame = true,
 publish_frame_projected_to_2d = false,
 use_pose_extrapolator = true,
 use_odometry = false,
 use_nav_sat = false,
 use_landmarks = false,
TRAJECTORY_BUILDER_2D.use_imu_data = false

在这里插入图片描述需要单独做一下base_link和odom的静态链接,在通过监听laser和odom的tf关系就可以把定位信息发送给px4了。

rosrun tf static_transform_publisher 0 0 0 0 0 0   /odom   /base_link  100

在这里插入图片描述2、cartographer使用px4飞控的imu消息 /mavros/imu/data
因为激光雷达和飞控属于固连关系,在启动rplidar节点时建立tf静态关联

  <node pkg="tf" name="tf_lidar" type="static_transform_publisher" args="0 0 0 0 0 0 base_link laser 10"/>

此时,laser的位置信息同步到了base_link,所以cartographer只需要去追踪base_link即可。在通过监听base_link和odom的tf关系就可以把定位信息发送给px4了。

trajectory_builder = TRAJECTORY_BUILDER,
  map_frame = "map",
  tracking_frame = "base_link",
  published_frame = "base_link",
  odom_frame = "odom",
  provide_odom_frame = true,
  publish_frame_projected_to_2d = false,
  use_pose_extrapolator = true,
  use_odometry = false,
  use_nav_sat = false,
  use_landmarks = false,
TRAJECTORY_BUILDER_2D.use_imu_data = true

在这里插入图片描述还有第三种情况
机器人中本身存在 odom 坐标系, 比如里程计或者vins。而 provide_odom_frame 又设置成了 true, 就会导致 odom 坐标系重复发布,会导致机器人位姿发生来回的跳动。

map_frame:一般为“map”.用来发布submap的ROS帧ID.

tracking_frame:SLAM算法要跟踪的ROS 帧ID.?

published_frame:用来发布pose的帧ID.?

odom_frame:只要当有里程计信息的时候才会使用。即provide_odom_frame=true.

provide_odom_frame:如果为true,the local, non-loop-closed, continuous pose将会在map_frame里以odom_frame发布?

publish_frame_projected_to_2d:如果为true,则已经发布的pose将会被完全成2D的pose,没有roll,pitch或者z-offset?

use_odometry:如果为true,需要提供里程计信息,并话题/odom会订阅nav_msgs/Odometry类型的消息,在SLAM过程中也会使用这个消息进行建图

use_nav_sat:如果为true,会在话题/fix上订阅sensor_msgs/NavSatFix类型的消息,并且在globalSLAM中会用到

use_landmarks:如果为true,会在话题/landmarks上订阅cartographer_ros_msgs/LandmarkList类型的消息,并且在SLAM过程中会用到

num_laser_scans:SLAM可以输入的/scan话题数目的最大值

num_muti_echo_laser_scans:SLAM可以输入sensor_msgs/MultiEchoLaserScan话题数目的最大值

num_subdivisions_per_laser_scan:将每个接收到的(multi_echo)激光scan分割成的点云数。 细分scam可以在扫描仪移动时取消scanner获取的scan。 有一个相应的trajectory builder option可将细分扫描累积到将用于scan_matching的点云中。

num_point_clouds:SLAM可以输入的sensor_msgs/PointCloud2话题数目的最大值

lookup_transform_timeout_sec:使用tf2查找transform的超时时间(秒)。

submap_publish_period_sec:发布submap的时间间隔(秒)

pose_publish_period_sec:发布pose的时间间隔,值为5e-3的时候为200HZ

trajectory_publish_period_sec:发布trajectory markers(trajectory的节点)的时间间隔,值为30e-3为30ms

rangefinder_samping_ratio:测距仪的固定采样ratio

imu_sampling_ratio:IMU message的固定采样ratio

landmarks_sampling_ratio:landmarks message的固定采样ratio,(单位是啥?)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于cartographer建立正确关系树的理解 的相关文章

  • 常用MAVROS话题和服务

    https zhuanlan zhihu com p 364872655 一 常用接收的话题 1 1 系统状态 消息名称 xff1a mavros state 类型 xff1a mavros msgs State 头文件 xff1a mav
  • QGC for Android 串口深扒

    QT for Android 实现机制是需要java库支持的 xff0c QT原生接口QSerialPort不支持Android系统的串口开发 QGC使用QT框架 xff0c 采用c 43 43 语言通过基类linkinterface和qt
  • ROS系统 摄像头标定camera calibration

    1 安装标定功能包 sudo apt span class token operator span get install ros span class token operator span melodic span class toke
  • make px4_sitl_default gazebo

    make px4 sitl default gazebo这个过程可能比较考验电脑内存 xff0c 我电脑有几次CPU都是100 运行 xff0c 而且停下卡住 情况可能如下 xff1a 11 33 Building CXX object C
  • sklearn学习笔记9:逻辑回归

    定义 xff1a 是一种名为回归的线性分类器 xff0c 其本质是由线性回归变化而来的 xff0c 一种广泛使用于分类问题中的广义回归算法 xff0c 通常用于二分类问题 xff0c 也可以做多分类 本质 xff1a 是一个返回对数几率的
  • XTDrone--执行roslaunch px4 indoor1.launch 遇到的问题

    RLException while processing home karasi PX4 Firmware launch single vehicle spawn xtd launch Invalid tag Cannot load com
  • PX4编译中的各种问题

    最近在研究如何使用UAV xff0c 由于是初学者 xff0c 不好直接上手实体无人机 xff0c 因此考虑通过在gazebo中模拟的方式进行一下无人机的简单使用模拟 xff0c 于是了解到了PX4这个东西 xff0c 他不仅支持固件写入
  • T265+ROS+opencv4.5.3

    OpenCV4 for CUDA安装 OpenCV提供图像处理过程中的基础API xff0c 所以首先完成OpenCV4的构建 为了利用Jetson平台拥有CUDA加速的优势需要先安装OpenCV的CUDA版本 xff08 Jetpack默
  • PX4官方视觉惯性里程计测距 VIO

    官方地址 xff1a https docs px4 io master zh computer vision visual inertial odometry html 视觉位置和GPS不能同时运行 VIO使用视觉里程计 xff08 vis
  • flycarcq problem

    1 install ceres Could not find a package configuration file provided by Ceres with any of the following names CeresConfi
  • jetson xavier nx 安装D435i

    1 xff0c Realsense sdk安装 git clone https span class token operator span span class token comment github com jetsonhacks i
  • 卸载opencv 安装cuda版本的opencv

    第一推荐 https span class token operator span span class token comment zhuanlan zhihu com p 411901208 span 一 卸载opencv xff08
  • D435i VINS-Fusion环境搭建

    参考网址 https span class token operator span span class token comment github com kuankuan yue VINS FUSION leanrning span 1
  • jetson nx 安装cuda 10.2

    看到的另外两个方案 https span class token operator span span class token comment blog csdn net FRD2009041510 article details 4204
  • LIO-SAM ouster

    1 ROS tested with Melodic sudo apt span class token operator span get install span class token operator span y ros span
  • 数据分析业务场景 | 用户画像

    一 概况 定义 是根据用户的一系列行为和意识过程建立起来的多维度标签 xff1b 是根据用户人口学特征 xff0c 网络浏览内容 xff0c 网络社交活动和消费行为等信息而抽象出的一个标签化的用户模型 xff1b 首要任务 xff1a 根据
  • D435i vins搜集资料

    在D435i上运行VINS Mono 前面都测试好之后就可以再D435i上运行VINS Mone了 xff0c 这里特地感谢下博客如何用Realsense D435i运行VINS Mono等VIO算法 获取IMU同步数据的作者Manii x
  • mavros常用控制消息

    数传 用于查看数传状态 xff1a span class token operator span mavros span class token operator span span class token function radio s
  • 启动T265

    室内T265定点飞行 先启动基本vio脚本 roslaunch p450 experiment p450 vio onboard launch 再启动控制脚本 roslaunch p450 experiment p450 vio contr
  • VINS标定---Ego-planner

    1 检查realsense 和飞控的连接 查看飞控串口 ls span class token operator span dev span class token operator span ttyA span class token o

随机推荐

  • ego-planner框架和参数

    drone id 对应飞机的编号 从0开始 map size xyz 地图场地大小 xff0c 给的目标点要在地图范围内 fx fy cx cy 相机内参 obstacles inflation 障碍物膨胀大小 是 飞机外廓尺寸的1 5倍
  • 执行 install_geographiclib_datasets.sh 错误

    https blog csdn net weixin 41865104 article details 119418901 在 usr share 新建GeographicLib文件夹 在 usr share GeographicLib 文
  • 通过mavros的桥接连接qgc

    fcu url指定的是飞控的连接方式 xff0c 设置飞控为正确的端口即可 gcs url指定的是QGC所在主机的IP xff0c 这个换为运行QGC主机的IP地址即可 如果不知道主机的IP地址可以用udp发布方式 gcs url span
  • ros在同一工作空间下调用其它功能包的头文件

    A功能包需要调用B功能包的头文件 在B功能包CMakeLists txt中修改 去掉catkin package中的include注释 xff08 让别人能识别到自己的头文件 xff09 A功能包在find package时能识别到B功能包
  • 千寻位置NTRIP网络基准站

    端口选择NTRIP连接方式 xff1b 点击 Connect 输入Enter URL Enter URL格式 xff1a http NTRIP账号 xff1a 密码 64 rtk ntrip qxwz com 通道号 RTCM32 GGB
  • 关于egoplanner fastplanner内PID的控制

    Kp0 Kp1 Kp2 Kv0 Kv1 Kv2
  • 如何描述数据分布的特征?

    数据分布的特征可以从集中趋势 xff0c 离中趋势 xff0c 偏态和峰态三个方面进行描述 一 集中趋势 xff08 位置 xff09 是一组平均指标 xff0c 它反映了总体的一般水平或分布 1 平均数 分为 xff1a 简单平均数 xf
  • 对于egoplanner的障碍物分析

    根源 根据障碍物检查并分段初始轨迹 bool BsplineOptimizer span class token operator span span class token function check collision and reb
  • t265 通过mavros传递定位信息px4

    https github com thien94 vision to mavros 通过话题 mavros vision pose pose 向PX4发送位置数据 t265两种安装方式 xff1a USB口朝右镜头向前和向下安装 如需其它方
  • T265 VS D435i

  • px4_sitl_defult error

    span class token operator span Firmware span class token operator span Tools span class token operator span sitl gazebo
  • Intel RealSense D435i与IMU标定用于vins-fusion

    1 标定imu工具 mkdir span class token operator span p imu catkin ws span class token operator span src cd imu catkin ws span
  • PCL点云滤波处理D435i深度图用于octomap

    D435i直接输出的深度点云噪点太多经过滤波处理后再使用 直通滤波 保留或删除某一轴线特定范围内的点 xff0c 改变视野范围 pcl span class token operator span PassThrough span clas
  • ros编译过程中缺少各种依赖库的集合操作

    1 OpenGL All the OpenGL functionality tests failed You might need to modify the include and library search paths by edit
  • ROS发布自定义数组和数据

    主要使用std msgs数据结构 rosmsg show std msgs 自定义话题消息 1 新建msg文件 2 修改CMakeLists txt文件 3 修改package xml文件 4 生成对应头文件 5 编写发布者程序 6 编写接
  • 关于几个坐标系的关系NED ENU ROS

    几个坐标系转来转去 xff0c 时间一长又搞混了 px4使用的坐标系为NED xff08 北东地 xff09 坐标系或者FRD xff08 前右下 xff09 坐标系 然而mavros xff08 melodic版本 xff09 中常使用的
  • 使用Optitrack给px4提供定位

    Motive设置 打开View gt Data Streaming xff0c 确认OptiTrack Streaming Engine和VRPN Streaming Engine勾选Broadcast Frame Data 创建刚体 xf
  • 相关分析与回归分析

    相关与回归分析就是了解变量之间相关关系的统计方法 一 相关分析 具有相关关系的变量之间 xff0c 如果不区分原因和结果 xff0c 我们称之为相关分析 相关分析是看两个因素之间的相关性 xff0c 不需要确定哪个是自变量 xff0c 哪个
  • D435i运行vins-fusion性能提升

    1 mavros imu data mavros imu data raw选用区别 2 vins estimator odometry 话题转发给 mavros vision pose pose 3 关闭D435i的自动曝光 xff0c 设
  • 关于cartographer建立正确关系树的理解

    正确的TF关系map odom base link laser base link是固定在机器人本体上的坐标系 xff0c 通常选择飞控 其中map odom 的链接是由cartographer中lua文件配置完成的 map frame s