diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1786054..8e83228 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,19 @@
-cmake_minimum_required(VERSION 2.4.6)
-include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
+cmake_minimum_required(VERSION 2.8)
+project(ros_flydra)
-rosbuild_init()
+find_package(catkin REQUIRED message_generation sensor_msgs geometry_msgs)
-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
-set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
+add_message_files()
+add_service_files()
-rosbuild_genmsg()
-rosbuild_gensrv()
+catkin_python_setup()
+
+generate_messages(DEPENDENCIES sensor_msgs geometry_msgs)
+
+catkin_package(
+ CATKIN_DEPENDS message_runtime sensor_msgs geometry_msgs
+)
+
+catkin_install_python(PROGRAMS nodes/camhistograms nodes/camnode nodes/flydra2ros nodes/flydra2rviz
+ nodes/flydra2stats nodes/joysuperpacket nodes/liveplot nodes/main_brain nodes/showpose nodes/speakpose
+ DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
diff --git a/Makefile b/Makefile
deleted file mode 100644
index b75b928..0000000
--- a/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include $(shell rospack find mk)/cmake.mk
\ No newline at end of file
diff --git a/manifest.xml b/manifest.xml
deleted file mode 100644
index 44830dd..0000000
--- a/manifest.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- ros_flydra
-
- Andrew Straw
- BSD
-
- http://flydra.astraw.com
-
-
-
-
-
-
diff --git a/package.xml b/package.xml
new file mode 100644
index 0000000..6e57c63
--- /dev/null
+++ b/package.xml
@@ -0,0 +1,25 @@
+
+ ros_flydra
+ 0.0.1
+
+ ros_flydra
+
+ Andrew Straw
+ Andrew Straw
+ BSD
+ http://flydra.astraw.com
+
+ catkin
+
+ message_generation
+ geometry_msgs
+ sensor_msgs
+
+ message_runtime
+ sensor_msgs
+ geometry_msgs
+ rospy
+ python-opencv
+ python-blist
+
+
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..6f30a5e
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,11 @@
+## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD
+
+from distutils.core import setup
+from catkin_pkg.python_setup import generate_distutils_setup
+
+# fetch values from package.xml
+setup_args = generate_distutils_setup(
+ packages=['ros_flydra'],
+ package_dir={'': 'src'})
+
+setup(**setup_args)
diff --git a/src/setup.py b/src/setup.py
deleted file mode 100644
index 9f9c3c7..0000000
--- a/src/setup.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python2
-
-from setuptools import setup, find_packages
-
-
-setup(
- name='ros_flydra',
- packages = find_packages()
-)
-
diff --git a/stack.xml b/stack.xml
deleted file mode 100644
index aaea958..0000000
--- a/stack.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
- ros_flydra
- 1.0
-