I am trying to get a robot to localize, but getting a ‘Failed to meet update rate!’ error. Running Noetic on kernel 5.4.0-1047-raspi.
Anyone know how to fix this? Thanks.
Error message in terminal:
[ WARN] [1641061436.663625132]: Failed to meet update rate! Took 0.31075859500000002633
Error message in log file:
1641055730.821605004 WARN /ekf_odom_node [/tmp/binarydeb/ros-noetic-robot-localization-2.7.3/src/ros_filter.cpp:1867(RosFilter<T>::periodicUpdate)] [topics: /rosout, /diagnostics, /tf, /odom/ekf/enc_imu] Failed to meet update rate! Took 0.23348387100000000949
Main launch file:
<launch>
<node pkg="sensors" name="dummyOdom" type="dummyOdom.py" output="screen"/>
<include file="$(find sensor_imu)/launch/sensor_imu.launch" />
<include file="$(find ydlidar_ros_driver)/launch/scan.launch" />
<include file="$(find navstack_pub)/launch/odom_ekf.launch" />
<!-- <include file="$(find navstack_pub)/launch/amcl.launch" /> -->
<include file="$(find husky_navigation)/launch/amcl.launch" />
<include file="$(find husky_navigation)/launch/move_base.launch" />
<arg name="map_file" value="$(find navstack_pub)/maps/map.yaml" />
<node pkg="map_server" type="map_server" name="map_server" args="$(arg map_file)" />
<!-- Transformation Configuration ... Setting Up the Relationships Between Coordinate Frames -->
<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0 0 0 0 0 0 base_link laser_frame 30" />
<node pkg="tf" type="static_transform_publisher" name="imu_broadcaster" args="0 0 0 0 0 0 base_link imu 30" />
<node pkg="tf" type="static_transform_publisher" name="imu_broadcaster2" args="0 0 0 0 0 0 imu imu_module_frame 30" />
<node pkg="tf" type="static_transform_publisher" name="base_link_broadcaster" args="0 0 0 0 0 0 base_footprint base_link 30" />
<!-- odom to base_footprint transform will be provided by the robot_pose_ekf node -->
<!-- map to odom will be provided by the AMCL -->
<!-- <node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0 0 0 0 0 0 map odom 30" /> -->
<node pkg="tf" type="static_transform_publisher" name="world_to_map" args="0 0 0 0 0 0 /world /map 30"/>
<!-- <node pkg="tf" type="static_transform_publisher" name="odom_to_base_link" args="0 0 0 0 0 0 /odom /base_footprint 30"/> -->
<!-- <node pkg="tf" type="static_transform_publisher" name="base_foorprint_to_link" args="0.2245 0.0 0.2 0.0 0.0 0.0 /base_footprint /base_link 40" /> -->
<node pkg="rviz" name="rviz" type="rviz" args="-d $(find navstack_pub)/launch/lidar.rviz" />
</launch>
odom_ekf.launch:
<!-- Odom node (Encoders + IMU) -->
<launch>
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_odom_node" output="screen" >
<param name="frequency" value="30"/>
<param name="sensor_timeout" value="0.1"/>
<param name="two_d_mode" value="true"/>
<remap from="odometry/filtered" to="odom/ekf/enc_imu"/>
<param name="map_frame" value="map"/>
<param name="odom_frame" value="odom"/>
<param name="base_link_frame" value="base_footprint"/>
<param name="world_frame" value="odom"/>
<param name="transform_time_offset" value="0.0"/>
<param name="odom0" value="/odom_dummy"/>
<param name="odom0_differential" value="false" />
<param name="odom0_relative" value="false" />
<param name="odom0_queue_size" value="10" />
<rosparam param="odom0_config">[
<!-- false, false, false,
false, false, false,
true, true, false,
false, false, true,
false, false, false] -->
false, false, false,
false, false, false,
false, false, false,
false, false, false,
false, false, false]
</rosparam>
<param name="imu0" value="/imu"/>
<param name="imu0_differential" value="false" />
<param name="imu0_relative" value="true" />
<param name="imu0_queue_size" value="10" />
<param name="imu0_remove_gravitational_acceleration" value="true" />
<rosparam param="imu0_config">[
false, false, false,
false, false, true,
false, false, false,
false, false, true,
true, false, false]
</rosparam>
<param name="print_diagnostics" value="true" />
<param name="debug" value="true" />
<param name="debug_out_file" value="debug_odom_ekf.txt" />
<rosparam param="process_noise_covariance">[
0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0.06, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0.03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0.03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0.06, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.025,0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0.025,0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0.04, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.02, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.005]
</rosparam>
<rosparam param="initial_estimate_covariance">[
1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9]
</rosparam>
</node>
</launch>