robot_pose_ekf odom_combined topic is not pusblished everytime
Hi All!
I am trying to run robotposeekf package with my RT 9axis IMU Sensor and Create2 with (autonomy_create driver) that publish the /odom
topic. I have a simple node that subscribed to /odom
and /robot_pose_ekf/odom_combined
topics and create a trajectory path to display both topic in the odom frame but usually get shorter path from robotposeekf.
Then I check each topic and got this messages
$rostopic hz robotposeekf/odom_combined
min: 5.038s max: 45.422s std dev: 8.43810s window: 125
no new messages
no new messages
no new messages
no new messages
no new messages
no new messages
no new messages
no new messages
no new messages
average rate: 0.128 min: 5.038s max: 45.422s std dev: 8.40684s window: 126
no new messages no new messages
no new messages no new messages
average rate: 0.129 min: 5.038s max: 45.422s std dev: 8.37696s window: 127
no new messages
no new messages
$ rostopic hz /imu_data
subscribed to [/imu_data]
average rate: 10.000
min: 0.100s max: 0.101s std dev: 0.00025s window: 10
average rate: 10.000
min: 0.099s max: 0.101s std dev: 0.00038s window: 20
average rate: 10.000
min: 0.099s max: 0.101s std dev: 0.00036s window: 30
average rate: 10.000
min: 0.099s max: 0.101s std dev: 0.00042s window: 40
average rate: 10.000
min: 0.099s max: 0.101s std dev: 0.00043s window: 50
rostopic hz /odom
subscribed to [/odom]
average rate: 10.005
min: 0.099s max: 0.101s std dev: 0.00053s window: 10
average rate: 9.998
min: 0.099s max: 0.102s std dev: 0.00063s window: 20
average rate: 10.002
min: 0.095s max: 0.105s std dev: 0.00151s window: 30
average rate: 10.001
min: 0.095s max: 0.105s std dev: 0.00132s window: 40
average rate: 10.001
min: 0.095s max: 0.105s std dev: 0.00125s window: 50
average rate: 10.000
min: 0.095s max: 0.105s std dev: 0.00119s window: 60
average rate: 10.001
min: 0.095s max: 0.105s std dev: 0.00112s window: 70
average rate: 10.001
min: 0.095s max: 0.105s std dev: 0.00107s window: 80
average rate: 10.000
min: 0.095s max: 0.105s std dev: 0.00128s window: 90
average rate: 9.998
min: 0.094s max: 0.106s std dev: 0.00154s window: 100
Basically, in my launch file, I have set the robotposeekf freq parameter to 10hz.
<!--
Loading IMU Driver
-->
<include file="$(find rt_usb_9axisimu_driver)/launch/rt_usb_9axisimu_driver.launch" />
<!--
Loading IMU FILTER (Madgwick)
-->
<node pkg="imu_filter_madgwick" type="imu_filter_node" name="imu_filter_madgwick">
<param name="use_mag" type="bool" value="false"/>
<param name="publish_tf" type="bool" value="false"/>
<param name="world_frame" type="string" value="enu"/>
<remap from="/imu/data" to="/imu_data"/>
</node>
<!--
Loading Robot Pose EKF
-->
<arg name="output_frame" default="odom"/>
<arg name="base_footprint_frame" default="base_footprint"/>
<arg name="freq" default="10.0"/>
<arg name="sensor_timeout" default="1.0"/>
<arg name="odom_used" default="true"/>
<arg name="imu_used" default="true"/>
<arg name="vo_used" default="false"/>
<node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
<param name="output_frame" value="$(arg output_frame)"/>
<param name="base_footprint_frame" value="$(arg base_footprint_frame)"/>
<param name="freq" value="$(arg freq)"/>
<param name="sensor_timeout" value="$(arg sensor_timeout)"/>
<param name="odom_used" value="$(arg odom_used)"/>
<param name="imu_used" value="$(arg imu_used)"/>
<param name="vo_used" value="$(arg vo_used)"/>
</node>
I believed that /odom_combined
should published regularly but I am not really sure what seems to be the problem. I have done calibrating my IMU. I set the autonomy_create2 publish tf to false.
Any help is appreciated! Thanks
Asked by fj138696 on 2017-07-19 22:26:30 UTC
Answers
I think I know the reason why I don't have robot_pose_ekf/odom_combined topic output regularly because my tf is wrong. I added output="screen" in the launch file and showed that my IMU was not active since I am missing transform to imu_link.
original TF
<node pkg="tf" type="static_transform_publisher" name="base_to_imu_broadcaster" args="0.0 0 0.17 0 0 0 1 /base_link /imu 100" />
new TF
<node pkg="tf" type="static_transform_publisher" name="base_to_imu_broadcaster" args="0.0 0 0.17 0 0 0 1 /base_link /imu_link 100" />
Asked by fj138696 on 2017-07-20 20:17:44 UTC
Comments