diff --git a/.gitignore b/.gitignore
index d1cf0301a77c8413578a677f7763ccac34917516..74effdcf58a01480592bf15e81c9f5c8324df086 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ msg/java/
 msg_gen/
 src/dynamic_graph_bridge/
 bin/
+build/
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..60c916416ec2ca44d7ff835e959cc9d22ccb394c
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "cmake"]
+	path = cmake
+	url = git://github.com/jrl-umi3218/jrl-cmakemodules.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e474891168b2ee38b1295e21fcbb778a51195f8b..d3f6f11fb56e6707e928ae3b61869ac3fcf05159 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,3 +52,38 @@ rosbuild_add_link_flags(ros_export ${JRL_MAL_LDFLAGS} ${DYNAMIC_GRAPH_LDFLAGS}
   ${SOT_CORE_LDFLAGS})
 target_link_libraries(ros_export
   ${JRL_MAL_LIBRARIES} ${DYNAMIC_GRAPH_LIBRARIES} ${SOT_CORE_LIBRARIES})
+
+
+INSTALL(TARGETS ros_import DESTINATION lib)
+INSTALL(TARGETS ros_export DESTINATION lib)
+
+INCLUDE(cmake/python.cmake)
+
+INCLUDE_DIRECTORIES(${DYNAMIC_GRAPH_INCLUDE_DIRS})
+LINK_DIRECTORIES(${DYNAMIC_GRAPH_LIBRARY_DIRS})
+
+DYNAMIC_GRAPH_PYTHON_MODULE("ros/ros_import"
+  ros_import
+  ros/ros_import/wrap
+  )
+SET_TARGET_PROPERTIES(dynamic_graph/ros/ros_import/wrap
+  PROPERTIES
+  COMPILE_FLAGS
+  ${JRL_MAL_CFLAGS} ${DYNAMIC_GRAPH_CFLAGS} ${SOT_CORE_CFLAGS}
+  LINK_FLAGS
+  ${JRL_MAL_LDFLAGS} ${DYNAMIC_GRAPH_LDFLAGS} ${SOT_CORE_LDFLAGS}
+  )
+
+DYNAMIC_GRAPH_PYTHON_MODULE("ros/ros_export"
+  ros_export
+  ros/ros_export/wrap
+  )
+SET_TARGET_PROPERTIES(dynamic_graph/ros/ros_export/wrap
+  PROPERTIES
+  COMPILE_FLAGS
+  ${JRL_MAL_CFLAGS} ${DYNAMIC_GRAPH_CFLAGS} ${SOT_CORE_CFLAGS}
+  LINK_FLAGS
+  ${JRL_MAL_LDFLAGS} ${DYNAMIC_GRAPH_LDFLAGS} ${SOT_CORE_LDFLAGS}
+  )
+
+ADD_SUBDIRECTORY(src)
diff --git a/cmake b/cmake
new file mode 160000
index 0000000000000000000000000000000000000000..b70f9e7e91f246938403b30e96ceaa879abd12ae
--- /dev/null
+++ b/cmake
@@ -0,0 +1 @@
+Subproject commit b70f9e7e91f246938403b30e96ceaa879abd12ae
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6226a8e32aca7980b37a8f4e4cafd9aa7a75eea0
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,7 @@
+EXEC_PROGRAM(
+  ${PYTHON_EXECUTABLE}
+  ARGS
+  "-c \"from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='')\""
+  OUTPUT_VARIABLE PYTHON_SITELIB
+  )
+PYTHON_INSTALL("dynamic_graph/ros" "__init__.py" "${PYTHON_SITELIB}")
diff --git a/src/dynamic_graph/ros/__init__.py b/src/dynamic_graph/ros/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..58fcc1695fd6dc95196b10e1871cccd2bbd1d2cc
--- /dev/null
+++ b/src/dynamic_graph/ros/__init__.py
@@ -0,0 +1,2 @@
+from ros_import import RosImport
+from ros_export import RosExport