diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644
index 28105dd..0000000
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-cmake_minimum_required(VERSION 2.4.6)
-include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
-
-# Append to CPACK_SOURCE_IGNORE_FILES a semicolon-separated list of
-# directories (or patterns, but directories should suffice) that should
-# be excluded from the distro. This is not the place to put things that
-# should be ignored everywhere, like "build" directories; that happens in
-# rosbuild/rosbuild.cmake. Here should be listed packages that aren't
-# ready for inclusion in a distro.
-#
-# This list is combined with the list in rosbuild/rosbuild.cmake. Note
-# that CMake 2.6 may be required to ensure that the two lists are combined
-# properly. CMake 2.4 seems to have unpredictable scoping rules for such
-# variables.
-#list(APPEND CPACK_SOURCE_IGNORE_FILES /core/experimental)
-
-rosbuild_make_distribution(0.1.0)
diff --git a/Makefile b/Makefile
deleted file mode 100644
index a818cca..0000000
--- a/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include $(shell rospack find mk)/cmake_stack.mk
\ No newline at end of file
diff --git a/ros_arduino_bridge/package.xml b/ros_arduino_bridge/package.xml
new file mode 100644
index 0000000..6f4cf8a
--- /dev/null
+++ b/ros_arduino_bridge/package.xml
@@ -0,0 +1,21 @@
+
+ ros_arduino_bridge
+ 0.2.0
+
+ Metapackage for ros_arduino_bridge.
+
+ Patrick Goebel
+ Patrick Goebel
+ BSD
+ http://ros.org/wiki/ros_arduino_bridge
+
+ catkin
+
+ ros_arduino_firmware
+ ros_arduino_msgs
+ ros_arduino_python
+
+
+
+
+
diff --git a/ros_arduino_firmware/CMakeLists.txt b/ros_arduino_firmware/CMakeLists.txt
index f8f1c9c..1148d7b 100644
--- a/ros_arduino_firmware/CMakeLists.txt
+++ b/ros_arduino_firmware/CMakeLists.txt
@@ -1,30 +1,9 @@
-cmake_minimum_required(VERSION 2.4.6)
-include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+cmake_minimum_required(VERSION 2.8.3)
+project(ros_arduino_firmware)
-# Set the build type. Options are:
-# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
-# Debug : w/ debug symbols, w/o optimization
-# Release : w/o debug symbols, w/ optimization
-# RelWithDebInfo : w/ debug symbols, w/ optimization
-# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
-#set(ROS_BUILD_TYPE RelWithDebInfo)
+find_package(catkin REQUIRED)
+catkin_package(DEPENDS)
-rosbuild_init()
-
-#set the default path for built executables to the "bin" directory
-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
-#set the default path for built libraries to the "lib" directory
-set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
-
-#uncomment if you have defined messages
-#rosbuild_genmsg()
-#uncomment if you have defined services
-#rosbuild_gensrv()
-
-#common commands for building c++ executables and libraries
-#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
-#target_link_libraries(${PROJECT_NAME} another_library)
-#rosbuild_add_boost_directories()
-#rosbuild_link_boost(${PROJECT_NAME} thread)
-#rosbuild_add_executable(example examples/example.cpp)
-#target_link_libraries(example ${PROJECT_NAME})
+install(DIRECTORY src
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
diff --git a/ros_arduino_firmware/Makefile b/ros_arduino_firmware/Makefile
deleted file mode 100644
index b75b928..0000000
--- a/ros_arduino_firmware/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
diff --git a/ros_arduino_firmware/mainpage.dox b/ros_arduino_firmware/mainpage.dox
deleted file mode 100644
index a28c5dd..0000000
--- a/ros_arduino_firmware/mainpage.dox
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
-\mainpage
-\htmlinclude manifest.html
-
-\b ros_arduino_firmware is ...
-
-
-
-
-\section codeapi Code API
-
-
-
-
-*/
diff --git a/ros_arduino_firmware/manifest.xml b/ros_arduino_firmware/manifest.xml
deleted file mode 100644
index 245bdf3..0000000
--- a/ros_arduino_firmware/manifest.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- ROS Arduino Firmware
-
-
- Patrick Goebel
- BSD
-
- http://ros.org/wiki/ros_arduino_firmware
-
-
-
-
diff --git a/ros_arduino_firmware/package.xml b/ros_arduino_firmware/package.xml
new file mode 100644
index 0000000..ccc2e3d
--- /dev/null
+++ b/ros_arduino_firmware/package.xml
@@ -0,0 +1,13 @@
+
+ ros_arduino_firmware
+ 0.2.0
+
+ ROS Arduino Firmware.
+
+ Patrick Goebel
+ Patrick Goebel
+ BSD
+ http://ros.org/wiki/ros_arduino_firmware
+
+ catkin
+
diff --git a/ros_arduino_msgs/CMakeLists.txt b/ros_arduino_msgs/CMakeLists.txt
index f1c1a19..c504682 100644
--- a/ros_arduino_msgs/CMakeLists.txt
+++ b/ros_arduino_msgs/CMakeLists.txt
@@ -1,30 +1,23 @@
-cmake_minimum_required(VERSION 2.4.6)
-include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+cmake_minimum_required(VERSION 2.8.3)
+project(ros_arduino_msgs)
-# Set the build type. Options are:
-# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
-# Debug : w/ debug symbols, w/o optimization
-# Release : w/o debug symbols, w/ optimization
-# RelWithDebInfo : w/ debug symbols, w/ optimization
-# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
-#set(ROS_BUILD_TYPE RelWithDebInfo)
+find_package(catkin REQUIRED genmsg std_msgs)
-rosbuild_init()
+add_message_files(FILES
+ AnalogFloat.msg
+ Analog.msg
+ Digital.msg
+ SensorState.msg
+ )
-#set the default path for built executables to the "bin" directory
-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
-#set the default path for built libraries to the "lib" directory
-set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
+add_service_files(FILES
+ DigitalSetDirection.srv
+ DigitalWrite.srv
+ ServoRead.srv
+ ServoWrite.srv
+ )
-#uncomment if you have defined messages
-rosbuild_genmsg()
-#uncomment if you have defined services
-rosbuild_gensrv()
+generate_messages(DEPENDENCIES std_msgs)
+
+catkin_package(DEPENDS std_msgs)
-#common commands for building c++ executables and libraries
-#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
-#target_link_libraries(${PROJECT_NAME} another_library)
-#rosbuild_add_boost_directories()
-#rosbuild_link_boost(${PROJECT_NAME} thread)
-#rosbuild_add_executable(example examples/example.cpp)
-#target_link_libraries(example ${PROJECT_NAME})
diff --git a/ros_arduino_msgs/Makefile b/ros_arduino_msgs/Makefile
deleted file mode 100644
index b75b928..0000000
--- a/ros_arduino_msgs/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
diff --git a/ros_arduino_msgs/mainpage.dox b/ros_arduino_msgs/mainpage.dox
deleted file mode 100644
index 4a0daab..0000000
--- a/ros_arduino_msgs/mainpage.dox
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
-\mainpage
-\htmlinclude manifest.html
-
-\b ros_arduino_msgs is ...
-
-
-
-
-\section codeapi Code API
-
-
-
-
-*/
diff --git a/ros_arduino_msgs/manifest.xml b/ros_arduino_msgs/manifest.xml
deleted file mode 100644
index 62ebb0b..0000000
--- a/ros_arduino_msgs/manifest.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- ROS Arduino Messages
-
-
- Patrick Goebel
- BSD
-
- http://ros.org/wiki/ros_arduino_msgs
-
-
-
diff --git a/ros_arduino_msgs/package.xml b/ros_arduino_msgs/package.xml
new file mode 100644
index 0000000..939fcb9
--- /dev/null
+++ b/ros_arduino_msgs/package.xml
@@ -0,0 +1,17 @@
+
+ ros_arduino_msgs
+ 0.2.0
+
+ ROS Arduino Messages.
+
+ Patrick Goebel
+ Patrick Goebel
+ BSD
+ http://ros.org/wiki/ros_arduino_msgs
+
+ catkin
+
+ std_msgs
+
+ std_msgs
+
diff --git a/ros_arduino_msgs/src/ros_arduino_msgs/__init__.py b/ros_arduino_msgs/src/ros_arduino_msgs/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/ros_arduino_python/CMakeLists.txt b/ros_arduino_python/CMakeLists.txt
index f8f1c9c..a79bb49 100644
--- a/ros_arduino_python/CMakeLists.txt
+++ b/ros_arduino_python/CMakeLists.txt
@@ -1,30 +1,18 @@
-cmake_minimum_required(VERSION 2.4.6)
-include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+cmake_minimum_required(VERSION 2.8.3)
+project(ros_arduino_python)
-# Set the build type. Options are:
-# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
-# Debug : w/ debug symbols, w/o optimization
-# Release : w/o debug symbols, w/ optimization
-# RelWithDebInfo : w/ debug symbols, w/ optimization
-# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
-#set(ROS_BUILD_TYPE RelWithDebInfo)
+find_package(catkin REQUIRED)
+catkin_package(DEPENDS)
+catkin_python_setup()
-rosbuild_init()
+install(DIRECTORY config
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
-#set the default path for built executables to the "bin" directory
-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
-#set the default path for built libraries to the "lib" directory
-set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
+install(DIRECTORY launch
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
-#uncomment if you have defined messages
-#rosbuild_genmsg()
-#uncomment if you have defined services
-#rosbuild_gensrv()
-
-#common commands for building c++ executables and libraries
-#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
-#target_link_libraries(${PROJECT_NAME} another_library)
-#rosbuild_add_boost_directories()
-#rosbuild_link_boost(${PROJECT_NAME} thread)
-#rosbuild_add_executable(example examples/example.cpp)
-#target_link_libraries(example ${PROJECT_NAME})
+install(DIRECTORY nodes
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+)
diff --git a/ros_arduino_python/Makefile b/ros_arduino_python/Makefile
deleted file mode 100644
index b75b928..0000000
--- a/ros_arduino_python/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
diff --git a/ros_arduino_python/mainpage.dox b/ros_arduino_python/mainpage.dox
deleted file mode 100644
index 10ef6c2..0000000
--- a/ros_arduino_python/mainpage.dox
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
-\mainpage
-\htmlinclude manifest.html
-
-\b ros_arduino_python is ...
-
-
-
-
-\section codeapi Code API
-
-
-
-
-*/
diff --git a/ros_arduino_python/manifest.xml b/ros_arduino_python/manifest.xml
deleted file mode 100644
index 1d04908..0000000
--- a/ros_arduino_python/manifest.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- ROS Arduino Python
-
-
- Patrick Goebel
- BSD
-
- http://ros.org/wiki/ros_arduino_python
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ros_arduino_python/nodes/arduino_node.py b/ros_arduino_python/nodes/arduino_node.py
index e9c65f0..9730e4a 100755
--- a/ros_arduino_python/nodes/arduino_node.py
+++ b/ros_arduino_python/nodes/arduino_node.py
@@ -21,10 +21,10 @@
import roslib; roslib.load_manifest('ros_arduino_python')
import rospy
-from arduino_driver import Arduino
-from arduino_sensors import *
+from ros_arduino_python.arduino_driver import Arduino
+from ros_arduino_python.arduino_sensors import *
from ros_arduino_msgs.srv import *
-from base_controller import BaseController
+from ros_arduino_python.base_controller import BaseController
from geometry_msgs.msg import Twist
import os, time
import thread
diff --git a/ros_arduino_python/package.xml b/ros_arduino_python/package.xml
new file mode 100644
index 0000000..b84c9cb
--- /dev/null
+++ b/ros_arduino_python/package.xml
@@ -0,0 +1,21 @@
+
+ ros_arduino_python
+ 0.2.0
+
+ ROS Arduino Python.
+
+ Patrick Goebel
+ Patrick Goebel
+ BSD
+ http://ros.org/wiki/ros_arduino_python
+
+ catkin
+
+ rospy
+ std_msgs
+ sensor_msgs
+ geometry_msgs
+ nav_msgs
+ tf
+ ros_arduino_msgs
+
diff --git a/ros_arduino_python/setup.py b/ros_arduino_python/setup.py
new file mode 100644
index 0000000..e09dd1b
--- /dev/null
+++ b/ros_arduino_python/setup.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+from distutils.core import setup
+from catkin_pkg.python_setup import generate_distutils_setup
+
+d = generate_distutils_setup(
+ packages=['ros_arduino_python'],
+ package_dir={'': 'src'},
+ )
+
+setup(**d)
diff --git a/ros_arduino_python/src/__init__.py b/ros_arduino_python/src/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/ros_arduino_python/src/arduino_driver.py b/ros_arduino_python/src/ros_arduino_python/arduino_driver.py
similarity index 100%
rename from ros_arduino_python/src/arduino_driver.py
rename to ros_arduino_python/src/ros_arduino_python/arduino_driver.py
diff --git a/ros_arduino_python/src/arduino_sensors.py b/ros_arduino_python/src/ros_arduino_python/arduino_sensors.py
similarity index 100%
rename from ros_arduino_python/src/arduino_sensors.py
rename to ros_arduino_python/src/ros_arduino_python/arduino_sensors.py
diff --git a/ros_arduino_python/src/base_controller.py b/ros_arduino_python/src/ros_arduino_python/base_controller.py
similarity index 100%
rename from ros_arduino_python/src/base_controller.py
rename to ros_arduino_python/src/ros_arduino_python/base_controller.py
diff --git a/stack.xml b/stack.xml
deleted file mode 100644
index f4c5a70..0000000
--- a/stack.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
- ROS Arduino Bridge
- Maintained by Patrick Goebel
- BSD
-
- http://ros.org/wiki/ros_arduino_bridge
-
-
-
-
-
-