diff --git a/recipes-ros/mavros/libmavconn_0.17.4.bb b/recipes-ros/mavros/libmavconn_0.17.4.bb
new file mode 100644
index 0000000000000000000000000000000000000000..f4a6c272fa66426efcfe3d42b1b1b837e91ffa17
--- /dev/null
+++ b/recipes-ros/mavros/libmavconn_0.17.4.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "MAVLink communication library"
+LICENSE = "BSD | GPLv3 | LGPLv3"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=15;endline=17;md5=9b511d4c606b1a23e454d3260818d003"
+
+DEPENDS = " \
+    boost \
+    ros-mavlink \
+    console-bridge \
+"
+
+RDEPENDS_${PN} = " \
+    boost \
+    ros-mavlink \
+    console-bridge \
+"
+
+require mavros.inc
+
+ROS_PKG_SUBDIR = "libmavconn"
diff --git a/recipes-ros/mavros/mavros-extras_0.17.4.bb b/recipes-ros/mavros/mavros-extras_0.17.4.bb
new file mode 100644
index 0000000000000000000000000000000000000000..e5d10f39fa59dd6a8620cabb75961cbbe3b785e8
--- /dev/null
+++ b/recipes-ros/mavros/mavros-extras_0.17.4.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Extra nodes and plugins for <a href="http://wiki.rot.org/mavros">MAVROS</a>"
+
+LICENSE = "BSD | GPLv3 | LGPLv3"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=12;endline=14;md5=5e724d80140fc99e7507c9876e320175"
+
+MAVROS_RUN_AND_BUILD_DEPENDS = " \
+     roscpp \
+     tf2-ros \
+     tf \
+     geometry-msgs \
+     mavros-msgs \
+     sensor-msgs \
+     std-msgs \
+     visualization-msgs \
+     urdf \
+     image-transport \
+     mavros \
+ "
+
+DEPENDS = "\
+    cmake-modules \
+    cv-bridge \
+    ${MAVROS_RUN_AND_BUILD_DEPENDS} \
+"
+
+RDEPENDS_${PN} = "\
+    ${MAVROS_RUN_AND_BUILD_DEPENDS} \ 
+"
+
+require mavros.inc
+
+ROS_PKG_SUBDIR = "mavros_extras"
diff --git a/recipes-ros/mavros/mavros-msgs_0.17.4.bb b/recipes-ros/mavros/mavros-msgs_0.17.4.bb
new file mode 100644
index 0000000000000000000000000000000000000000..9b1b5dbcd6cd522b1417988aabea09e9640166fb
--- /dev/null
+++ b/recipes-ros/mavros/mavros-msgs_0.17.4.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "mavros_msgs defines messages for MAVROS"
+LICENSE = "BSD | GPLv3 | LGPLv3"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=11;endline=13;md5=9b511d4c606b1a23e454d3260818d003"
+
+DEPENDS = " \
+    message-generation \
+    std-msgs \
+    geometry-msgs \
+"
+
+RDEPENDS_${PN} = " \
+    message-runtime \
+    std-msgs \
+    geometry-msgs \
+"
+
+require mavros.inc
+
+ROS_PKG_SUBDIR = "mavros_msgs"
diff --git a/recipes-ros/mavros/mavros.inc b/recipes-ros/mavros/mavros.inc
new file mode 100644
index 0000000000000000000000000000000000000000..9466afcd69477ffe646a30e5347336023e9b87d0
--- /dev/null
+++ b/recipes-ros/mavros/mavros.inc
@@ -0,0 +1,8 @@
+SRC_URI = "https://github.com/mavlink/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "7d8fd22c44a9a5d384cd34c5a329d443"
+
+S = "${WORKDIR}/${ROS_SP}/${ROS_BPN}"
+
+inherit catkin
+
+ROS_SPN = "mavros"
diff --git a/recipes-ros/mavros/mavros_0.17.4.bb b/recipes-ros/mavros/mavros_0.17.4.bb
new file mode 100644
index 0000000000000000000000000000000000000000..7f4ba20e89c859592d8afc784600aa2536cb4432
--- /dev/null
+++ b/recipes-ros/mavros/mavros_0.17.4.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "MAVROS -- MAVLink extendable communication node for ROS with \
+proxy for Ground Control Station."
+LICENSE = "BSD | GPLv3 | LGPLv3"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=12;endline=14;md5=9b511d4c606b1a23e454d3260818d003"
+
+# System dependencies
+
+DEPENDS = " \
+    boost \
+    libeigen \
+    ros-mavlink \
+"
+
+RDEPENDS_${PN} = " \
+    boost \
+    ros-mavlink \
+"
+
+# ROS packages dependencies
+MAVROS_RUN_AND_BUILD_DEPENDS = " \
+    diagnostic-updater \
+    eigen-conversions \
+    libmavconn \
+    pluginlib \
+    rosconsole-bridge \
+    roscpp \
+    tf2-ros \
+    diagnostic-msgs \
+    geometry-msgs \
+    mavros-msgs \
+    nav-msgs \
+    sensor-msgs \
+    std-msgs \
+    std-srvs \
+"
+
+DEPENDS_append = " \
+    angles \
+    cmake-modules \
+    message-runtime \
+    rospy \
+    ${MAVROS_RUN_AND_BUILD_DEPENDS} \
+"
+
+RDEPENDS_${PN}_append = "${MAVROS_RUN_AND_BUILD_DEPENDS}"
+
+require mavros.inc
+
+ROS_PKG_SUBDIR = "mavros"
diff --git a/recipes-ros/ros-mavlink/files/0001-Fix-PKG_NAME-_INCLUDE_DIR-variable.patch b/recipes-ros/ros-mavlink/files/0001-Fix-PKG_NAME-_INCLUDE_DIR-variable.patch
new file mode 100644
index 0000000000000000000000000000000000000000..26d9437651e038b5b8e2e3c8302d17a8b3d8d445
--- /dev/null
+++ b/recipes-ros/ros-mavlink/files/0001-Fix-PKG_NAME-_INCLUDE_DIR-variable.patch
@@ -0,0 +1,31 @@
+From af522ba6b85be00a712618c719e831b941a8ffdc Mon Sep 17 00:00:00 2001
+From: Gustavo Jose de Sousa <gustavo.sousa@intel.com>
+Date: Wed, 16 Nov 2016 13:23:49 -0200
+Subject: [PATCH] Fix @PKG_NAME@_INCLUDE_DIR variable
+
+The previous approach hardcoded the path to the include directory and cross
+compilation using a sysroot directory would fail. This patch takes the
+resulting config files generated from other ROS packages as reference.
+
+Upstream-Status: Backport [https://github.com/mavlink/mavlink-gbp-release/pull/5]
+---
+ config.cmake.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/config.cmake.in b/config.cmake.in
+index b62ab64..34bed61 100644
+--- a/config.cmake.in
++++ b/config.cmake.in
+@@ -3,7 +3,8 @@ if (@PKG_NAME@_CONFIG_INCLUDED)
+ endif()
+ set(@PKG_NAME@_CONFIG_INCLUDED TRUE)
+ 
+-set(@PKG_NAME@_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include")
++get_filename_component(include "${@PKG_NAME@_DIR}/../../../include" ABSOLUTE)
++set(@PKG_NAME@_INCLUDE_DIRS ${include})
+ set(@PKG_NAME@_DIALECTS @PKG_MAVLINK_DIALECTS@)
+ set(@PKG2_NAME@_DIALECTS @PKG2_MAVLINK_DIALECTS@)
+ 
+-- 
+2.10.2
+
diff --git a/recipes-ros/ros-mavlink/ros-mavlink_git.bb b/recipes-ros/ros-mavlink/ros-mavlink_git.bb
new file mode 100644
index 0000000000000000000000000000000000000000..64cfa2606280e13bba11a70846d7a60aa8305e67
--- /dev/null
+++ b/recipes-ros/ros-mavlink/ros-mavlink_git.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "MAVLink message marshaling library"
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=54ad3cbe91bebcf6b1823970ff1fb97f"
+
+SRC_URI = "git://github.com/mavlink/mavlink-gbp-release.git;branch=release/${ROSDISTRO}/mavlink"
+SRCREV = "${AUTOREV}"
+
+SRC_URI += "file://0001-Fix-PKG_NAME-_INCLUDE_DIR-variable.patch"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "python-setuptools"
+
+inherit catkin