Robot_pose_ekf transform error
Sorry for formatting, can't upload files yet. (first time using ekf) I am trying to implement this EKF with the nav stack, and am just testing my setup with just imu data right now. for context here is the launch file:
The nodelet below converts my imu data to ENU, which should be publishing imu data to the ekf. I suspect the problem is somewhere with the tfs.
when launched, I get this warning:
Lookup would require extrapolation 0.000077746s into the future. Requested time 1669713533.772383928 but the latest data is at time 1669713533.772306204, when looking up transform from frame [imuframe] to frame [imulink]
!-- Transformation Configuration ... Setting Up the Relationships Between Coordinate Frames --> node pkg="tf" type="statictransformpublisher" name="baselinktolaser" args="0.06 0 0.08 0 0 0 baselink laser 30" /> node pkg="tf" type="statictransformpublisher" name="imubroadcaster" args="0 0.06 0.02 0 0 0 baselink imuframe 30" /> node pkg="tf" type="statictransformpublisher" name="baselinkbroadcaster" args="0 0 0.09 0 0 0 basefootprint baselink 30" /> !-- odom to basefootprint transform will be provided by the robotposeekf node --> !-- map to odom will be provided by the AMCL --> node pkg="tf" type="statictransformpublisher" name="maptoodom" args="0 0 0 0 0 0 map odom 30" /> node pkg="tf" type="statictransformpublisher" name="tfimunedenu" args="0 0 0 1.5708 0 3.1416 imuframe imu_link 10" output="screen"/>
!-- Wheel Odometry Publisher // motor driver --> !-- Subscribe: /rightticks, /leftticks, /initial2d --> !-- Publish: /odomdataeuler, /odomdataquat --> <!--(original) node pkg="localizationdatapub" type="ekfodompub" name="ekfodom_pub">
!-- subscribes to cmdvel topic --> !-- publishes odom topic with baselink frame --> !-- broadcasts odom->baselink transform --> !--include file="$(find roboteqdiff_driver)/launch/driver.launch"/ -->
-- IMU Data Publisher Using the BNO08x IMU Sensor --> !-- Publish: /imu/data --> !-- Publish: /bno08x/raw --> node name="rosbno08x" pkg="rosbno08x" type="talker.py" respawn="true" respawndelay="2" output="screen"> >param name="frameid" type="string" value="imuframe" /> >param name="covlinear" value=".00001"/> >param name="covangular" value=".00001"/> >param name="covmagnetic" value=".00001"/> >param name="cov_orientation" value=".00001"/> /node>
!-- Transforms NED IMU data pulished in frame imulinkned on topics /imu/dataned and /imu/magned to ENU data in frame imulink published on /imu/dataenu and /imu/magenu --> node pkg="imutransformer" type="imutransformernode" name="imudatatransformer" output="screen"> >remap from="imuin/data" to="bno08x/raw"/> >remap from="imuin/mag" to="bno08x/mag"/> >remap from="imuout" to="imuenu"/> >param name="targetframe" value="imulink"/> /node>
!-- Extended Kalman Filter from robotposeekf Node--> !-- Subscribe: /odom, /imudata, /vo --> !-- Publish: /robotposeekf/odomcombined --> !-- remap from="odom" to="odomdataquat" /--> !--remap from="imudata" to="imudata/raw" / --> !--remap from="vo" to="gpsmeas" / [/gps topic must have odometry message!!]--> node pkg="robotposeekf" type="robotposeekf" name="robotposeekf"> >remap from="imudata" to="bno08x/raw" /> >param name="outputframe" value="odom"/> >param name="basefootprintframe" value="basefootprint"/> >param name="freq" value="30.0"/> >param name="sensortimeout" value="1.0"/> >param name="odomused" value="false"/> >param name="imuused" value="true"/> >param name="voused" value="false"/> >param name="gpsused" value="false"/> >param name="debug" value="false"/> >param name="selfdiagnose" value="false"/> >param name="imu_absolute" value="false"/> /node>
/launch>
Asked by chased11 on 2022-11-29 04:29:51 UTC
Comments
Maybe this is relevant? https://docs.ros.org/en/humble/Tutorials/Intermediate/Tf2/Learning-About-Tf2-And-Time-Cpp.html
Asked by jrtg on 2022-11-30 08:39:57 UTC