diff --git a/pcl_ros/CMakeLists.txt b/pcl_ros/CMakeLists.txt
index cc56897e..001e74ca 100644
--- a/pcl_ros/CMakeLists.txt
+++ b/pcl_ros/CMakeLists.txt
@@ -2,13 +2,17 @@ cmake_minimum_required(VERSION 2.8)
project(pcl_ros)
# Deal with catkin
-find_package(catkin REQUIRED roscpp sensor_msgs tf)
find_package(Boost COMPONENTS system filesystem thread REQUIRED)
+find_package(catkin REQUIRED genmsg roscpp sensor_msgs std_msgs tf)
find_package(Eigen)
find_package(PCL)
# deal with ROS
-include_directories(${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${Eigen_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})
+include_directories(SYSTEM ${Boost_INCLUDE_DIRS}
+ ${catkin_INCLUDE_DIRS}
+ ${Eigen_INCLUDE_DIRS}
+ ${PCL_INCLUDE_DIRS}
+)
include_directories(include)
link_directories(${catkin_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS} ${Eigen_LIBRARY_DIRS} ${PCL_LIBRARY_DIRS})
@@ -18,9 +22,21 @@ catkin_package(DEPENDS Eigen PCL roscpp sensor_msgs tf
LIBRARIES pcl_ros_tf
)
+# create messages
+project(pcl)
+add_message_files(DIRECTORY msg
+ FILES ModelCoefficients.msg
+ PointIndices.msg
+ PolygonMesh.msg
+ Vertices.msg
+)
+generate_messages(DEPENDENCIES sensor_msgs std_msgs)
+
+project(pcl_ros)
# ---[ Point Cloud Library - Transforms
add_library (pcl_ros_tf SHARED src/transforms.cpp)
target_link_libraries(pcl_ros_tf ${PCL_LIBS} ${Boost_LIBS} ${catkin_LIBS})
+add_dependencies(pcl_ros_tf ros_gencpp pcl_ros_copy)
install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
diff --git a/pcl_ros/msg/ModelCoefficients.msg b/pcl_ros/msg/ModelCoefficients.msg
new file mode 100644
index 00000000..8d3f9b89
--- /dev/null
+++ b/pcl_ros/msg/ModelCoefficients.msg
@@ -0,0 +1,3 @@
+Header header
+float32[] values
+
diff --git a/pcl_ros/msg/PointIndices.msg b/pcl_ros/msg/PointIndices.msg
new file mode 100644
index 00000000..007c2900
--- /dev/null
+++ b/pcl_ros/msg/PointIndices.msg
@@ -0,0 +1,3 @@
+Header header
+int32[] indices
+
diff --git a/pcl_ros/msg/PolygonMesh.msg b/pcl_ros/msg/PolygonMesh.msg
new file mode 100644
index 00000000..8eeb5a4c
--- /dev/null
+++ b/pcl_ros/msg/PolygonMesh.msg
@@ -0,0 +1,6 @@
+# Separate header for the polygonal surface
+Header header
+# Vertices of the mesh as a point cloud
+sensor_msgs/PointCloud2 cloud
+# List of polygons
+Vertices[] polygons
diff --git a/pcl_ros/msg/Vertices.msg b/pcl_ros/msg/Vertices.msg
new file mode 100644
index 00000000..6b7c72a0
--- /dev/null
+++ b/pcl_ros/msg/Vertices.msg
@@ -0,0 +1,2 @@
+# List of point indices
+uint32[] vertices
diff --git a/pcl_ros/package.xml b/pcl_ros/package.xml
index 8e18aa15..bd297c08 100644
--- a/pcl_ros/package.xml
+++ b/pcl_ros/package.xml
@@ -22,6 +22,7 @@
pcl
roscpp
sensor_msgs
+ std_msgs
tf
common_msgs
@@ -30,5 +31,6 @@
pcl
roscpp
sensor_msgs
+ std_msgs
tf