hector_quadrotor_gazebo + imu_filter_madgwick, estimation quality?

asked 2019-09-26 06:19:37 -0500

akosodry gravatar image

updated 2019-09-29 03:37:43 -0500


Does anyone have experience with the Madgwick filter applied with the hector_quadrotor_gazebo package (quadrotor_empty_world.launch)? I executed some maneuvers with the quadrotor in gazebo and compared the published ground truth (/ground_truth_to_tf/pose topic) orientation with the output of the Madgwick filter (/imu/data topic). I observe some significant (too big) differences that are depicted in the following figures:

Roll - this is quite okey

image description

Pitch - less okey, seems the drift is not compensated enough

image description

Yaw - quite big differences, (soft/hard iron compensation, is it something that should be addressed here in gazebo?)...

image description

I will start playing with the filter gain which is now set to the default 0.1. But i have a feeling that something is wrongly set up in my environment. So here are the relevant parts:

In spawn_quadrotor launch file, i have:

<arg name="use_ground_truth_for_tf" default="true" />
<arg name="use_ground_truth_for_control" default="false" />

Once gazebo world with the quadrotor is initialized i start the imu_filter_madgwick node in a launch file with the following params:

<param name="use_mag" value="true"/>
<param name="publish_tf" value="false"/>
<param name="use_magnetic_field_msg" value="false"/>
<param name="world_frame" value="enu"/>
<remap from="imu/data_raw" to="raw_imu"/>
<remap from="imu/mag" to="magnetic"/>

Basically that is it. While the maneuvers are executed i registered the data from /ground_truth_to_tf/pose and /imu/data topics to be able to make the above comparison.

Do you see something that is missing or wrongly set up? Any help is much appreciated! Thank you.

edit retag flag offensive close merge delete