ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

robot_pose_ekf on a quadcopter

asked 2012-03-01 14:49:33 -0500

mrtc gravatar image

I'm working on a controller for a quadcopter. Currently I have 9-DOF IMU data and localization data (just x-y-z). The onboard controller already has an algorithm (DCM) for calculating orientation. However the localization operates at a max frequency of 4Hz or so. Would the robot_pose_ekf package be suitable for fusing the IMU data with this on a quadcopter platform? I performed a brief literature search and it doesn't appear this has been done before with this package, but I have no reason to believe it would not work.

edit retag flag offensive close merge delete


I think it would be best if you described the design problem you're facing in more detail, ie what particular hardware are you using (I'm assuming ArduPilot Mega, right?) and what exactly are you trying to achieve. Would you like to create a quadcopter based SLAM solution, or hold pos indoors? etc

tom gravatar image tom  ( 2012-03-07 02:16:51 -0500 )edit

Thanks for the reply Tom. The platform is actually a modified version of AeroQuad (similar in several ways to ArduPilot). For the time being I'm trying to perform position holding indoors. I'm also using the starmac-ros-pkg to provide some of the functionality.

mrtc gravatar image mrtc  ( 2012-03-07 04:27:29 -0500 )edit

And how exactly is the localization achieved?

tom gravatar image tom  ( 2012-03-09 01:09:01 -0500 )edit

Localization is achieved with an indoor ultrasonic-based triangulation system.

mrtc gravatar image mrtc  ( 2012-03-09 04:30:12 -0500 )edit

You'll definitely have to republish IMU data as an IMU topic. DCM doesn't give you information about measurement uncertainties (error covariance), which might be a problem. I remember once trying to achieve what you're doing, but failed for some reason (don't remember exactly, sorry). Good luck.

tom gravatar image tom  ( 2012-03-14 00:34:01 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2012-03-07 07:36:14 -0500

Wim gravatar image

The robot pose ekf takes in (partial) pose measurements, so you won't be able to directly feed in the IMU accelerations and angular velocities (how did you get to 9 DOF?), but you can feed in the orientation of the IMU.

edit flag offensive delete link more



In the hobby market, it seems that 9DOF is the phrase used for 3 rate gyros + 3 linear accels + 3 magnetometers.

mjcarroll gravatar image mjcarroll  ( 2012-03-07 07:44:26 -0500 )edit

mjcarroll's correct, I should have specified.

mrtc gravatar image mrtc  ( 2012-03-07 07:50:18 -0500 )edit

The orientation updates much faster (40 Hz or so) than the localization system (4 Hz) but I guess robot_pose_ekf would still be inappropriate for this purpose.

mrtc gravatar image mrtc  ( 2012-03-07 08:19:20 -0500 )edit

The robot pose ekf indeed only provides a 'best estimate'. See this answer for more details:

Wim gravatar image Wim  ( 2012-03-12 14:59:16 -0500 )edit

Question Tools


Asked: 2012-03-01 14:49:33 -0500

Seen: 1,224 times

Last updated: Mar 07 '12