Skip to content

Commit

Permalink
Pulls out RViz support into a separate package. (cartographer-project#66
Browse files Browse the repository at this point in the history
)
  • Loading branch information
damonkohler authored Sep 20, 2016
1 parent 534f011 commit 1525dbd
Show file tree
Hide file tree
Showing 15 changed files with 189 additions and 114 deletions.
54 changes: 5 additions & 49 deletions cartographer_ros/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ set(PACKAGE_DEPENDENCIES
geometry_msgs
cartographer_ros_msgs
roscpp
rviz
sensor_msgs
nav_msgs
tf2
tf2_eigen
tf2_ros
)

set(CMAKE_CXX_FLAGS "-pthread -std=c++11 -Wreorder")
Expand Down Expand Up @@ -70,18 +70,6 @@ link_directories(${CARTOGRAPHER_LIBRARY_DIRS})
find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})

set(CMAKE_AUTOMOC ON)
if(rviz_QT_VERSION VERSION_LESS "5")
message(STATUS "Using Qt4 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
find_package(Qt4 ${rviz_QT_VERSION} EXACT REQUIRED QtCore QtGui)
include(${QT_USE_FILE})
else()
message(STATUS "Using Qt5 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
find_package(Qt5 ${rviz_QT_VERSION} EXACT REQUIRED Core Widgets)
set(QT_LIBRARIES Qt5::Widgets)
endif()
add_definitions(-DQT_NO_KEYWORDS)

find_package(Boost REQUIRED
COMPONENTS
system
Expand All @@ -95,7 +83,6 @@ add_executable(cartographer_node
src/cartographer_node_main.cc
src/msg_conversion.cc
src/msg_conversion.h
src/node_constants.h
src/sensor_data.cc
src/sensor_data.h
src/sensor_data_producer.cc
Expand All @@ -105,30 +92,11 @@ add_executable(cartographer_node
)
target_link_libraries(cartographer_node
${CARTOGRAPHER_LIBRARIES}
${catkin_LIBRARIES}
${PCL_LIBRARIES}
gflags # TODO(whess): Use or remove gflags_catkin.
)
add_dependencies(cartographer_node
${catkin_EXPORTED_TARGETS}
)

add_library(cartographer_rviz_submaps_visualization
src/drawable_submap.cc
src/drawable_submap.h
src/node_constants.h
src/submaps_display.cc
src/submaps_display.h
)
target_link_libraries(cartographer_rviz_submaps_visualization
${Boost_LIBRARIES}
${CARTOGRAPHER_LIBRARIES}
${catkin_LIBRARIES}
${QT_LIBRARIES}
${ZLIB_LIBRARIES}
gflags # TODO(whess): CMake-ify?
)

add_dependencies(cartographer_rviz_submaps_visualization
add_dependencies(cartographer_node
${catkin_EXPORTED_TARGETS}
)

Expand All @@ -137,13 +105,11 @@ catkin_add_gtest(time_conversion_test
src/time_conversion.h
src/time_conversion.cc
)

target_link_libraries(time_conversion_test
${GTEST_BOTH_LIBRARIES}
${CARTOGRAPHER_LIBRARIES}
${GTEST_BOTH_LIBRARIES}
${catkin_LIBRARIES}
)

add_dependencies(time_conversion_test
${catkin_EXPORTED_TARGETS}
)
Expand All @@ -160,18 +126,8 @@ install(DIRECTORY configuration_files/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/configuration_files/
)

install(TARGETS
cartographer_rviz_submaps_visualization cartographer_node
install(TARGETS cartographer_node
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(FILES
rviz_plugin_description.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)

install(DIRECTORY ogre_media/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/ogre_media
)
7 changes: 1 addition & 6 deletions cartographer_ros/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,17 @@
<depend>rosbag</depend>
<depend>roscpp</depend>
<depend>roslib</depend>
<depend>rviz</depend>
<depend>sensor_msgs</depend>
<depend>std_msgs</depend>
<depend>tf2</depend>
<depend>tf2_eigen</depend>
<depend>visualization_msgs</depend>
<depend>tf2_ros</depend>
<depend>geometry_msgs</depend>
<depend>nav_msgs</depend>
<depend>libpcl-all-dev</depend>
<depend>pcl_conversions</depend>
<depend>eigen_conversions</depend>
<depend>message_runtime</depend>
<depend>qtbase5-dev</depend>
<depend>libqt5-core</depend>
<depend>libqt5-gui</depend>
<depend>libqt5-widgets</depend>

<test_depend>rosunit</test_depend>

Expand Down
3 changes: 2 additions & 1 deletion cartographer_ros/src/cartographer_node_main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@
#include "tf2_ros/transform_listener.h"

#include "msg_conversion.h"
#include "node_constants.h"
#include "sensor_data.h"
#include "sensor_data_producer.h"
#include "time_conversion.h"
Expand Down Expand Up @@ -99,6 +98,8 @@ constexpr char kImuTopic[] = "imu";
constexpr char kOdometryTopic[] = "odom";
constexpr char kOccupancyGridTopic[] = "map";
constexpr char kScanMatchedPointCloudTopic[] = "scan_matched_points2";
constexpr char kSubmapListTopic[] = "submap_list";
constexpr char kSubmapQueryServiceName[] = "submap_query";

struct NodeOptions {
carto::mapping::proto::MapBuilderOptions map_builder_options;
Expand Down
31 changes: 0 additions & 31 deletions cartographer_ros/src/node_constants.h

This file was deleted.

110 changes: 110 additions & 0 deletions cartographer_rviz/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Copyright 2016 The Cartographer Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cmake_minimum_required(VERSION 2.8)

project(cartographer_rviz)

set(PACKAGE_DEPENDENCIES
cartographer_ros_msgs
eigen_conversions
roscpp
rviz
)

set(CMAKE_CXX_FLAGS "-pthread -std=c++11 -Wreorder")

if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE Release)
endif()

if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -DNDEBUG")
elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -g -DNDEBUG")
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
message(FATAL_ERROR "Cartographer is too slow to be useful in debug mode.")
else()
message(FATAL_ERROR "Unknown CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
endif()

message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")

find_package(catkin REQUIRED COMPONENTS ${PACKAGE_DEPENDENCIES})
include_directories(${catkin_INCLUDE_DIRS})

catkin_package(
CATKIN_DEPENDS
message_runtime
${PACKAGE_DEPENDENCIES}
)

find_package(cartographer REQUIRED)
include_directories(${CARTOGRAPHER_INCLUDE_DIRS})
link_directories(${CARTOGRAPHER_LIBRARY_DIRS})

find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})

set(CMAKE_AUTOMOC ON)
if(rviz_QT_VERSION VERSION_LESS "5")
message(STATUS "Using Qt4 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
find_package(Qt4 ${rviz_QT_VERSION} EXACT REQUIRED QtCore QtGui)
include(${QT_USE_FILE})
else()
message(STATUS "Using Qt5 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
find_package(Qt5 ${rviz_QT_VERSION} EXACT REQUIRED Core Widgets)
set(QT_LIBRARIES Qt5::Widgets)
endif()
add_definitions(-DQT_NO_KEYWORDS)

find_package(Boost REQUIRED
COMPONENTS
system
iostreams
)
add_definitions(${BOOST_DEFINITIONS})
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})

add_library(cartographer_rviz_submaps_visualization
src/drawable_submap.cc
src/drawable_submap.h
src/submaps_display.cc
src/submaps_display.h
)
target_link_libraries(cartographer_rviz_submaps_visualization
${Boost_LIBRARIES}
${CARTOGRAPHER_LIBRARIES}
${QT_LIBRARIES}
${ZLIB_LIBRARIES}
${catkin_LIBRARIES}
)
add_dependencies(cartographer_rviz_submaps_visualization
${catkin_EXPORTED_TARGETS}
)

install(TARGETS cartographer_rviz_submaps_visualization
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(FILES rviz_plugin_description.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)

install(DIRECTORY ogre_media/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/ogre_media
)
53 changes: 53 additions & 0 deletions cartographer_rviz/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0"?>
<!--
Copyright 2016 The Cartographer Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<package format="2">
<name>cartographer_rviz</name>
<version>1.0.0</version>
<description>
Cartographer is a system that provides real-time simultaneous localization
and mapping SLAM across multiple platforms and sensor configurations. This
package provides Cartographer's RViz integration.
</description>
<maintainer email="[email protected]">
The Cartographer Authors
</maintainer>
<license>Apache 2.0</license>

<url>https://github.com/googlecartographer/cartographer_ros</url>

<buildtool_depend>catkin</buildtool_depend>

<build_depend>g++-static</build_depend>

<depend>cartographer</depend>
<depend>cartographer_ros_msgs</depend>

<depend>eigen_conversions</depend>
<depend>libqt5-core</depend>
<depend>libqt5-gui</depend>
<depend>libqt5-widgets</depend>
<depend>message_runtime</depend>
<depend>qtbase5-dev</depend>
<depend>roscpp</depend>
<depend>roslib</depend>
<depend>rviz</depend>

<export>
<rviz plugin="${prefix}/rviz_plugin_description.xml" />
</export>
</package>
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

<library path="lib/libcartographer_rviz_submaps_visualization">
<class name="Submaps"
type="cartographer_ros::rviz::SubmapsDisplay"
type="cartographer_rviz::SubmapsDisplay"
base_class_type="rviz::Display">
<description>
Displays submaps as a unified map in RViz.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@
#include <sstream>
#include <string>

namespace cartographer_ros {
namespace rviz {
namespace cartographer_rviz {

namespace {

Expand Down Expand Up @@ -237,5 +236,4 @@ float DrawableSubmap::UpdateAlpha(const float target_alpha) {
return current_alpha_;
}

} // namespace rviz
} // namespace cartographer_ros
} // namespace cartographer_rviz
Loading

0 comments on commit 1525dbd

Please sign in to comment.