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

Interface Pixhawk with hector_slam / AMCL

asked 2016-02-17 01:10:13 -0500

quentin gravatar image

Hi everybody,

I am developing an autonomous indoor quadrotor. For the moment everything was simulated on Gazebo and worked well. Now I want to push everything on a real drone and make use of both a Pixhawk and the px4flow to get good low level control. These components were not included into the simulation.

My system relies on either hector_mapping or AMCL for the localization (depending on the situation I use on or the other...).

I am experimenting the connection between the px4 boards and ROS via Mavros. The topics are published but I don't really understand how to bridge mavros with my localization algorithms so that I can get an improved localization taking into account all the data available...

Here is my question! I guess I should use so Kalman filters to fuse all the information (optical flow from px4flow, IMU for Pixhawk, height for Pixhawk and 2D coordinates from localization - hector_slam or AMCL). Is there an available node for that? How do I need to use it?

Thanks for your help!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-02-17 01:50:11 -0500

Here are two options that come to mind:

  • Leaving Px4 alone and running fusion just on the ROS side. robot_localization is probably the easiest and best documented sensor fusion approach for ROS currently. This way, there are two "loosely coupled" state estimates and you'd send commands to the PX4 based on your "ROS-side" state estimate without updating the internal PX4 estimator.
  • There are also other approaches like the ethzasl_sensor_fusion approach that were developed with MAVs in mind. See this page on the pixhawk wiki for extensive information. If you manage to send a pose estimate on the topics described there to the PX4, things should work. I'm not sure in how far there is support for partial pose estimates however (e.g. a 2D subset of pose information generated from the two approaches you use). As the internal state estimate of the PX4 is updated here, there probably is a somewhat higher risk of messing up.
edit flag offensive delete link more


Thanks for your answer. I also think that it is safer for me to keep PX4 untouched. I am going to try that and update on the first solution.

Additional question: do you know if mavros can publish Odometry msgs (in mavros/global_position/local topic) if no GPS are used? Could be useful for ekf...

quentin gravatar image quentin  ( 2016-02-17 03:30:49 -0500 )edit

I implemented your first suggestion. I posted my architecture in this post for some feedback. Thanks for your help.

quentin gravatar image quentin  ( 2016-03-08 20:32:50 -0500 )edit

Question Tools

1 follower


Asked: 2016-02-17 01:10:13 -0500

Seen: 1,312 times

Last updated: Feb 17 '16