diff --git a/recipes-ros/camera-info-manager-py/camera-info-manager-py_0.2.2.bb b/recipes-ros/camera-info-manager-py/camera-info-manager-py_0.2.2.bb
new file mode 100644
index 0000000000000000000000000000000000000000..425e1c29e1b6ac3c906d1e497c687c6fbc529aee
--- /dev/null
+++ b/recipes-ros/camera-info-manager-py/camera-info-manager-py_0.2.2.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Python interface for camera calibration information."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=13;endline=13;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "rospy sensor-msgs"
+
+SRC_URI = "https://github.com/ros-perception/${ROS_SPN}/archive/${ROS_SP}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "92ad0ca87343bb6fa4b7da5b54ce691e"
+SRC_URI[sha256sum] = "925545b955cc4eab45791ba788439324ebdba8958c6cbcdee57b6fe4f62eec78"
+
+S = "${WORKDIR}/${ROS_SPN}-${ROS_SP}"
+
+inherit catkin
+
+RDEPENDS_${PN} = "sensor-msgs"
diff --git a/recipes-ros/gscam/gscam_0.1.3.bb b/recipes-ros/gscam/gscam_0.1.3.bb
new file mode 100644
index 0000000000000000000000000000000000000000..4b2b83b04c47f45a762dd72c5502463e0a449a25
--- /dev/null
+++ b/recipes-ros/gscam/gscam_0.1.3.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "A ROS camera driver that uses gstreamer to connect to devices such as webcams."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=10;endline=10;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "gstreamer gst-plugins-base nodelet opencv roscpp image-transport sensor-msgs \
+  camera-calibration-parsers camera-info-manager"
+
+SRC_URI = "https://github.com/ros-drivers/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "c20617a0db24124168fe968365ecb990"
+SRC_URI[sha256sum] = "56fbb0c31d32cf4ff1a1b702732c3e8373e6d541c431329bcd931bd705991a35"
+
+inherit catkin
diff --git a/recipes-ros/imu-pipeline/imu-pipeline_0.1.2.bb b/recipes-ros/imu-pipeline/imu-pipeline_0.1.2.bb
new file mode 100644
index 0000000000000000000000000000000000000000..d471cbcf65ce0c166acb1e7d3ef595a1b84ae8bd
--- /dev/null
+++ b/recipes-ros/imu-pipeline/imu-pipeline_0.1.2.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "IMU Pipeline includes tools for processing and pre-processing IMU messages for easier use by later subscribers."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "roscpp sensor-msgs geometry-msgs nav-msgs tf"
+
+SRC_URI = "https://github.com/ros-perception/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "aebca1dfdce3cb8034cd4d203485e40e"
+SRC_URI[sha256sum] = "bb49464de2f2b9c63c31e2bf61804c24a69ee448c1d76e3ff978b4bef9c7cd87"
+
+S = "${WORKDIR}/${ROS_SP}"
+
+inherit catkin
diff --git a/recipes-ros/laser-assembler/laser-assembler_1.7.2.bb b/recipes-ros/laser-assembler/laser-assembler_1.7.2.bb
new file mode 100644
index 0000000000000000000000000000000000000000..b1a4f7cf33506f75a076ce343c44751075a55aab
--- /dev/null
+++ b/recipes-ros/laser-assembler/laser-assembler_1.7.2.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Provides nodes to assemble point clouds from either LaserScan or PointCloud messages"
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=13;endline=13;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "message-generation sensor-msgs message-filters tf roscpp rostest filters laser-geometry pluginlib"
+
+SRC_URI = "https://github.com/ros-perception/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "1e0fe2d0b5fb26eca1e9137d64767419"
+SRC_URI[sha256sum] = "de6637a229d84d6215dc0176ea05bc40c2eb2d8dec8ca520c4a29822f089e74a"
+
+S = "${WORKDIR}/${ROS_SP}"
+
+inherit catkin
diff --git a/recipes-ros/laser-filters/laser-filters_1.6.14.bb b/recipes-ros/laser-filters/laser-filters_1.6.14.bb
new file mode 100644
index 0000000000000000000000000000000000000000..86d5505a851ed488c0b5bd1e9df8a9bf48d6714a
--- /dev/null
+++ b/recipes-ros/laser-filters/laser-filters_1.6.14.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Assorted filters designed to operate on 2D planar laser scanners, \
+  which use the sensor_msgs/LaserScan type."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=10;endline=10;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "angles filters laser-geometry message-filters pluginlib roscpp sensor-msgs tf"
+
+SRC_URI = "https://github.com/ros-perception/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "4ca45f1df93c382ceaf86646940380bc"
+SRC_URI[sha256sum] = "cd8c3fe908956677998061f6b3f812c5a5efa508c88064385ec6fe87cb041aec"
+
+S = "${WORKDIR}/${ROS_SP}"
+
+inherit catkin
diff --git a/recipes-ros/urdf-tutorial/urdf-tutorial_0.2.3.bb b/recipes-ros/urdf-tutorial/urdf-tutorial_0.2.3.bb
new file mode 100644
index 0000000000000000000000000000000000000000..2b0ecbb629222c581ab8d6b2564c73ff0c198a12
--- /dev/null
+++ b/recipes-ros/urdf-tutorial/urdf-tutorial_0.2.3.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "This package contains a number of URDF tutorials."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=10;endline=10;md5=5ee5b8b046ae48ad94a2037ca953a67b"
+
+DEPENDS = "urdf"
+
+SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "b4f889f4c6c1cf70e89c2014d66d8ab4"
+SRC_URI[sha256sum] = "52cc8a8ddd562f84f41b655c4600adb8986314b657a372d32f868ea14e49d485"
+
+S = "${WORKDIR}/${ROS_SP}"
+
+inherit catkin
diff --git a/recipes-ros/urdfdom/urdfdom-py/0001-urdf-parser-py-install-scripts-use-catkin_python_set.patch b/recipes-ros/urdfdom/urdfdom-py/0001-urdf-parser-py-install-scripts-use-catkin_python_set.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9597b3581c80b03759504f03b5cdae324f5b47a6
--- /dev/null
+++ b/recipes-ros/urdfdom/urdfdom-py/0001-urdf-parser-py-install-scripts-use-catkin_python_set.patch
@@ -0,0 +1,110 @@
+From e54fcaaecfbaeaa45f5ace25c2b2a959ed5b2b1d Mon Sep 17 00:00:00 2001
+From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
+Date: Tue, 25 Mar 2014 08:58:12 +0100
+Subject: [PATCH] urdf-parser-py: install scripts use catkin_python_setup
+
+To install urdf-parser-py properly with the bitbake recipe in the
+meta-ros layer, the install scripts, CMakeLists.txt and setup.py
+are adjusted. The package.xml file is needed for the new
+CMakeLists.txt due to using catkin.
+
+The files were obtained from the urdfdom_py release repository at:
+https://github.com/ros-gbp/urdfdom_py-release/tree/4664fc1445f4c75b427dcc6fbad579ba285c1901/hydro
+
+The obtained files were slightly adjusted:
+  - The version in the package.xml is fixed.
+  - Paths in CMakeLists.txt and setup.py were changed for use
+    with the bitbake recipe.
+---
+ urdf_parser_py/CMakeLists.txt | 16 ++++++++++------
+ urdf_parser_py/package.xml    | 28 ++++++++++++++++++++++++++++
+ urdf_parser_py/setup.py       | 18 ++++++------------
+ 3 files changed, 44 insertions(+), 18 deletions(-)
+ create mode 100644 urdf_parser_py/package.xml
+
+diff --git a/urdf_parser_py/CMakeLists.txt b/urdf_parser_py/CMakeLists.txt
+index c811815..6a48657 100644
+--- a/urdf_parser_py/CMakeLists.txt
++++ b/urdf_parser_py/CMakeLists.txt
+@@ -1,7 +1,11 @@
+-find_program(PYTHON "python")
++cmake_minimum_required(VERSION 2.8.3)
++project(urdfdom_py)
+ 
+-if (PYTHON)
+-  set(SETUP_PY "${CMAKE_CURRENT_SOURCE_DIR}/setup.py")
+-  install(CODE "execute_process(COMMAND \"${PYTHON}\" \"${SETUP_PY}\" build --build-base \"${CMAKE_CURRENT_BINARY_DIR}/pybuild\" install --install-layout deb --prefix \"${CMAKE_INSTALL_PREFIX}\"
+-                WORKING_DIRECTORY \"${CMAKE_CURRENT_SOURCE_DIR}\")")
+-endif()
++find_package(catkin)
++catkin_python_setup()
++catkin_package()
++
++install(PROGRAMS
++  scripts/display_urdf
++  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
++  )
+diff --git a/urdf_parser_py/package.xml b/urdf_parser_py/package.xml
+new file mode 100644
+index 0000000..c9d2285
+--- /dev/null
++++ b/urdf_parser_py/package.xml
+@@ -0,0 +1,28 @@
++<?xml version="1.0"?>
++<package>
++  <name>urdfdom_py</name>
++  <version>0.2.10</version>
++  <description>A library to access URDFs using the DOM model.</description>
++  <maintainer email="isucan@willowgarage.com">Ioan Sucan</maintainer>
++
++  <license>BSD</license>
++
++  <author>Thomas Moulard</author>
++  <author>David Lu</author>
++  <author>Kelsey Hawkins</author>
++  <author>Antonio El Khoury</author>
++  <author>Eric Cousineau</author>
++
++  <url type="website">http://ros.org/wiki/urdf</url>
++  <url type="bugtracker">https://github.com/ros/urdfdom/issues</url>
++  <url type="repository">https://github.com/ros/urdfdom</url>
++
++  <buildtool_depend>catkin</buildtool_depend>
++  <buildtool_depend>python-catkin-pkg</buildtool_depend>  
++
++  <build_depend>python</build_depend>
++
++  <run_depend>python</run_depend>
++  <run_depend>catkin</run_depend>
++  
++</package>
+diff --git a/urdf_parser_py/setup.py b/urdf_parser_py/setup.py
+index eeb4c6d..45478d9 100644
+--- a/urdf_parser_py/setup.py
++++ b/urdf_parser_py/setup.py
+@@ -1,16 +1,10 @@
+ #!/usr/bin/env python
+-
+ from distutils.core import setup
+-
+-d = {'author': u'Thomas Moulard <thomas.moulard@gmail.com>, David Lu <davidlu@wustl.edu>, Kelsey Hawkins <kphawkins@gmail.com>, Antonio El Khoury <aelkhour@laas.fr>, Eric Cousineau <eacousineau@gmail.com>',
+- 'description': 'The urdf_parser_py package contains a Python implementation of the\nurdf_parser modeling various aspects of robot information, specified in the\nXml Robot Description Format (URDF).',
+- 'license': 'BSD',
+- 'maintainer': u'Thomas Moulard',
+- 'maintainer_email': 'thomas.moulard@gmail.com',
+- 'name': 'urdf_parser_py',
+- 'package_dir': {'': 'src'},
+- 'packages': ['urdf_parser_py', 'urdf_parser_py.xml_reflection'],
+- 'url': 'http://ros.org/wiki/urdf_parser_py',
+- 'version': '0.3.0'}
++from catkin_pkg.python_setup import generate_distutils_setup
++ 
++d = generate_distutils_setup(
++    packages=['urdf_parser_py', 'urdf_parser_py.xml_reflection'],
++    package_dir={'': 'src'}
++)
+ 
+ setup(**d)
+-- 
+1.8.3.2
+
diff --git a/recipes-ros/urdfdom/urdfdom-py_0.2.10.bb b/recipes-ros/urdfdom/urdfdom-py_0.2.10.bb
new file mode 100644
index 0000000000000000000000000000000000000000..9d68d03ae016c2e73a3611ea6b8898f629c8c142
--- /dev/null
+++ b/recipes-ros/urdfdom/urdfdom-py_0.2.10.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A python library to access URDFs using the DOM model."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=b441202ba2d6b14d62026cb18bb960ed"
+
+require urdfdom.inc
+
+SRC_URI += "file://0001-urdf-parser-py-install-scripts-use-catkin_python_set.patch;striplevel=2"
+
+S = "${WORKDIR}/${ROS_SP}/urdf_parser_py"
+
+inherit catkin
+
+RDEPENDS_${PN} = "python-lxml"
+
diff --git a/recipes-ros/urdfdom/urdfdom.inc b/recipes-ros/urdfdom/urdfdom.inc
new file mode 100644
index 0000000000000000000000000000000000000000..568c90b23a9c0d76dd1a5d37a3869c8ccbfa1aa8
--- /dev/null
+++ b/recipes-ros/urdfdom/urdfdom.inc
@@ -0,0 +1,5 @@
+SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "d9e2b630313e458c92ee7f5a40ca4a74"
+SRC_URI[sha256sum] = "e200f5adefa6bf8304e56ab8a3e1c04d3b6cced5df472f4aeb430ff81f1ffa0d"
+
+ROS_SPN = "urdfdom"
diff --git a/recipes-ros/urdfdom/urdfdom_0.2.10.bb b/recipes-ros/urdfdom/urdfdom_0.2.10.bb
index 2329981edd6766f44048b93df3c0bd60fabbc901..5cd759043395f9f9ee284adda9748ebf0d8b63c4 100644
--- a/recipes-ros/urdfdom/urdfdom_0.2.10.bb
+++ b/recipes-ros/urdfdom/urdfdom_0.2.10.bb
@@ -7,9 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b441202ba2d6b14d62026cb18bb960ed"
 
 DEPENDS = "urdfdom-headers console-bridge libtinyxml"
 
-SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
-SRC_URI[md5sum] = "d9e2b630313e458c92ee7f5a40ca4a74"
-SRC_URI[sha256sum] = "e200f5adefa6bf8304e56ab8a3e1c04d3b6cced5df472f4aeb430ff81f1ffa0d"
+require urdfdom.inc
 
 S = "${WORKDIR}/${ROS_SP}"
 
diff --git a/recipes-ros/velodyne/velodyne-driver_1.1.2.bb b/recipes-ros/velodyne/velodyne-driver_1.1.2.bb
new file mode 100644
index 0000000000000000000000000000000000000000..0e3c64c4f869471d147622d3c898726f106e9b31
--- /dev/null
+++ b/recipes-ros/velodyne/velodyne-driver_1.1.2.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "ROS device driver for Velodyne HDL-64E, and HDL-32 LIDARs."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=13;endline=13;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "diagnostic-updater libpcap nodelet pluginlib roscpp tf velodyne-msgs"
+
+require velodyne.inc
diff --git a/recipes-ros/velodyne/velodyne-msgs_1.1.2.bb b/recipes-ros/velodyne/velodyne-msgs_1.1.2.bb
new file mode 100644
index 0000000000000000000000000000000000000000..86b01028a75f518e420b3444a8a74e12dfc48b34
--- /dev/null
+++ b/recipes-ros/velodyne/velodyne-msgs_1.1.2.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "ROS message definitions for Velodyne 3D LIDARs."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=10;endline=10;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "message-generation message-runtime std-msgs"
+
+require velodyne.inc
diff --git a/recipes-ros/velodyne/velodyne-pointcloud_1.1.2.bb b/recipes-ros/velodyne/velodyne-pointcloud_1.1.2.bb
new file mode 100644
index 0000000000000000000000000000000000000000..59740cd97e0cd7f3d821490a280d8b0f9e476fa6
--- /dev/null
+++ b/recipes-ros/velodyne/velodyne-pointcloud_1.1.2.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Point cloud conversions for Velodyne 3D LIDARs."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=12;endline=12;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "angles nodelet pcl-conversions pcl-ros pluginlib roscpp roslib sensor-msgs tf \
+  velodyne-driver velodyne-msgs yaml-cpp"
+
+require velodyne.inc
diff --git a/recipes-ros/velodyne/velodyne.inc b/recipes-ros/velodyne/velodyne.inc
new file mode 100644
index 0000000000000000000000000000000000000000..f441b3733f3879ff11a25d66007b20fbf4e7772a
--- /dev/null
+++ b/recipes-ros/velodyne/velodyne.inc
@@ -0,0 +1,9 @@
+SRC_URI = "https://github.com/ros-drivers/${ROS_SPN}/archive/${ROS_SP}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "07caaeccf72dd910907369a4eadc0dca"
+SRC_URI[sha256sum] = "6ca923f662679e3286f33a511c1fb267a59d5f73e37752e249a69de5902cf756"
+
+S = "${WORKDIR}/${ROS_SPN}-${ROS_SP}/${ROS_BPN}"
+
+inherit catkin
+
+ROS_SPN = "velodyne"