From 02e204bdc07c840d24f02ab8a5270903459fdf13 Mon Sep 17 00:00:00 2001 From: Helen Oleynikova Date: Tue, 8 Aug 2023 15:28:00 +0200 Subject: [PATCH] Switch back to C++17 --- README.md | 7 +++---- nvblox_ros/CMakeLists.txt | 10 +++++----- nvblox_rviz_plugin/CMakeLists.txt | 6 +++--- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 2c98bf7..c8faab7 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ This is the ROS1 wrapper of nvblox, intended to make nvblox usable for the wider robotics community (especially for research). This is a work in progress by [Turcan Tuna](https://github.com/tutunarsl) and [Helen Oleynikova](https://github.com/helenol). -This repo is still under construction. See the [TODO](TODO.md) list for a complete list.
@@ -14,7 +13,7 @@ Isaac ROS Nvblox contains ROS 1 packages for 3D reconstruction. The mapping pipe `nvblox_ros1` builds the reconstructed map in the form of a TSDF (Truncated Signed Distance Function) stored in a 3D voxel grid. This approach is similar to 3D occupancy grid mapping approaches in which occupancy probabilities are stored at each voxel. However, TSDF-based approaches like nvblox store the (signed) distance to the closest surface at each voxel. The surface of the environment can then be extracted as the zero-level set of this voxelized function. Typically, TSDF-based reconstructions provide higher quality surface reconstructions. -In addition to their use in reconstruction, distance fields are also useful for path planning because they provide an immediate means of checking whether potential future robot positions are in collision. +In addition to their use in reconstruction, distance fields are also useful for path planning because they provide an immediate means of checking whether potential future robot positions are in collision. People are common obstacles for mobile robots, and while part of a costmap, people should not be part of the 3D reconstruction. Planners that provide behavioral awareness by navigating differently depending on their proximity to people, benefit from a costmap for people. Person segmentation is computed using the color image, with the resulting mask applied to the depth image separating depth into scene depth and person depth images. The scene depth image is forwarded to TSDF mapping as explained above, the depth image for people is processed to an occupancy grid map. @@ -53,7 +52,7 @@ This package is designed and tested to be compatible with ROS 1 Noetic running o | x86_64 | NVIDIA GPU | [Ubuntu 20.04+](https://releases.ubuntu.com/20.04/)
[CUDA 11.8+](https://developer.nvidia.com/cuda-downloads) | | # Installation -There's 2 options: docker +There's 2 options: docker ## Docker To simplify development, we strongly recommend using the docker images in [the docker subfolder](./docker/run_docker.sh) @@ -163,7 +162,7 @@ Find all available ROS 1 parameters [here](./docs/parameters.md). Find all ROS 1 subscribers, publishers and services [here](./docs/topics-and-services.md). ## Troubleshooting -Currently, the nvblox_ros1 package is only tested on Ubuntu 20.04 with ROS 1 Noetic. +Currently, the nvblox_ros1 package is only tested on Ubuntu 20.04 with ROS 1 Noetic. ## Updates diff --git a/nvblox_ros/CMakeLists.txt b/nvblox_ros/CMakeLists.txt index 8df84cd..df21a46 100644 --- a/nvblox_ros/CMakeLists.txt +++ b/nvblox_ros/CMakeLists.txt @@ -25,7 +25,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_EXPORT_COMPILE_COMMANDS ON) endif() -set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD 17) # Default to release build if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") @@ -129,11 +129,11 @@ add_dependencies(${PROJECT_NAME}_lib rescan_for_nvblox ) if (${nvblox_FOUND}) - target_link_libraries(${PROJECT_NAME}_lib + target_link_libraries(${PROJECT_NAME}_lib nvblox::nvblox_lib nvblox::nvblox_eigen ${catkin_LIBRARIES}) - + get_target_property(CUDA_ARCHS nvblox::nvblox_lib CUDA_ARCHITECTURES) set_property(TARGET ${PROJECT_NAME}_lib APPEND PROPERTY CUDA_ARCHITECTURES ${CUDA_ARCHS}) @@ -179,13 +179,13 @@ add_dependencies(nvblox_human_node # # Install includes. # install( -# DIRECTORY +# DIRECTORY # include/${PROJECT_NAME}/ # include/ # config # launch # rviz -# DESTINATION +# DESTINATION # include # #${CATKIN_PACKAGE_SHARE_DESTINATION} # ) diff --git a/nvblox_rviz_plugin/CMakeLists.txt b/nvblox_rviz_plugin/CMakeLists.txt index 99dd5c7..ff5c8e0 100644 --- a/nvblox_rviz_plugin/CMakeLists.txt +++ b/nvblox_rviz_plugin/CMakeLists.txt @@ -18,9 +18,9 @@ cmake_minimum_required(VERSION 3.5) project(nvblox_rviz_plugin) -# Default to C++17 +# Default to C++14 or we get hella warnings. if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD 14) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) endif() @@ -104,7 +104,7 @@ install( DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) install( - DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/icons" + DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/icons" DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) install(