ROS and APM using MAVlink

Currently, we have a fully operational ROS simulation so that we can test collision avoidance algorithms on it.  Information describing our current system is here.  Anyway, let me get to what I am trying to achieve this summer.  I intend to use the current simulation system to be able to have one plane flying while reacting to the planes in the simulator.  To achieve this we more or less need to be able to do two things: 1) send waypoints to planes via XBEE while in-flight and have them immediately fly to this destination, 2) receive GPS information from in-flight planes so that the collision avoidance algorithms can react accordingly.  I was wondering if anyone has had any experience doing this sort of thing and if so what is the direction I should go?  If not, could anyone point me in the right direction to getting started?  It seems that the MAVlink system can be used to communicate between a GCS and a plane but i'm not very familiar with this system, but once the communication is established it seems pretty trivial to send waypoints and receive GPS info.  Also, how much trouble will it be to format this information from MAVlink format to ROS topics.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Update:

    Hello ROS Group,

    I have been working for about a month on getting our ROS framework communicating with our UAV running ArduPlane.  I have finally gotten a ROS node running using MAVlink to communicate with the UAVs.  Now, I would like to have this node receive GPS information.  Is there a way to request the APM to stream this data so that I can receive it on the ROS side? It seems the msg that needs to be sent from the APM is the MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN.

    Also, I would like to eventually be able to send the UAV a waypoint and have it immediately fly to it.  Therefore, if the UAV was flying a mission it would depart from it, fly to the waypoint that was just sent and then continue flying its mission.  What is the best way to accomplish this functionality?  Is there a way to send a waypoint so that it treats this waypoint as the current waypoint and then continues on the mission after reaching it?  Also, I noticed this behavior is a lot like guided mode so maybe the best way to do this would be send it a guided waypoint and then once it reaches this waypoint change the mode back to auto?

This reply was deleted.