Skip to content

ROS2 Migration #95

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Dec 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: ROS2 CI

on:
pull_request:
branches:
- 'ros2'

jobs:
test_environment:
runs-on: [ubuntu-latest]
strategy:
fail-fast: false
matrix:
ros_distribution:
- foxy
- galactic
- rolling
include:
# Foxy Fitzroy (June 2020 - May 2023)
- docker_image: rostooling/setup-ros-docker:ubuntu-focal-ros-foxy-ros-base-latest
ros_distribution: foxy
ros_version: 2
# Galactic Geochelone (May 2021 - November 2022)
- docker_image: rostooling/setup-ros-docker:ubuntu-focal-ros-galactic-ros-base-latest
ros_distribution: galactic
ros_version: 2
# Rolling Ridley (June 2020 - Present)
- docker_image: rostooling/setup-ros-docker:ubuntu-focal-ros-rolling-ros-base-latest
ros_distribution: rolling
ros_version: 2
container:
image: ${{ matrix.docker_image }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 2

- name: Search packages in this repository
id: list_packages
run: |
echo ::set-output name=package_list::$(colcon list --names-only)
- name: Setup ROS environment
uses: ros-tooling/setup-ros@v0.2
with:
required-ros-distributions: ${{ matrix.ros_distribution }}

- name: build and test
uses: ros-tooling/action-ros-ci@v0.2
with:
package-name: ${{ steps.list_packages.outputs.package_list }}
target-ros2-distro: ${{ matrix.ros_distribution }}
vcs-repo-file-url: build_depends.repos
25 changes: 10 additions & 15 deletions .github/workflows/industrial_ci_action.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,24 @@
# This config uses industrial_ci (https://github.com/ros-industrial/industrial_ci.git).
# For troubleshooting, see readme (https://github.com/ros-industrial/industrial_ci/blob/master/README.rst)

name: CI

# This determines when this workflow is run
name: Industrial-CI
on: [push, pull_request] # on all pushes and PRs

jobs:
CI:
strategy:
matrix:
env:
- {ROS_DISTRO: kinetic}
- {ROS_DISTRO: kinetic, PRERELEASE: true}
- {ROS_DISTRO: melodic}
- {ROS_DISTRO: melodic, PRERELEASE: true}
- {ROS_DISTRO: noetic}
- {ROS_DISTRO: noetic, PRERELEASE: true}
- {ROS_DISTRO: noetic, OS_NAME: debian, OS_CODE_NAME: buster}
- {ROS_DISTRO: foxy}
- {ROS_DISTRO: galactic}
- {ROS_DISTRO: rolling}
- {ROS_DISTRO: foxy, PRERELEASE: true}
- {ROS_DISTRO: galactic, PRERELEASE: true}
- {ROS_DISTRO: rolling, PRERELEASE: true}
env:
CCACHE_DIR: /github/home/.ccache # Enable ccache
PARALLEL_BUILDS: 4
CCACHE_DIR: /github/home/.ccache # Enable ccache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
# This step will fetch/store the directory used by ccache before/after the ci run
- uses: actions/cache@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ octomap_mapping ![CI](https://github.com/OctoMap/octomap_mapping/workflows/CI/ba

ROS stack for mapping with OctoMap, contains the `octomap_server` package.

The main branch for ROS Kinetic and newer is `kinetic-devel`.
The main branch for ROS2 and newer is `ros2`.
5 changes: 5 additions & 0 deletions build_depends.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
repositories:
octomap_ros:
type: git
url: https://github.com/OctoMap/octomap_ros.git
version: ros2
12 changes: 9 additions & 3 deletions octomap_mapping/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
cmake_minimum_required(VERSION 3.0.2)
cmake_minimum_required(VERSION 3.5)
project(octomap_mapping)
find_package(catkin REQUIRED)
catkin_metapackage()
find_package(ament_cmake REQUIRED)

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

ament_package()
17 changes: 11 additions & 6 deletions octomap_mapping/package.xml
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
<package>
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>octomap_mapping</name>
<version>0.6.6</version>
<description>
Mapping tools to be used with the <a href="https://octomap.github.io/">OctoMap library</a>, implementing a 3D occupancy grid mapping.
</description>
<author>Armin Hornung</author>
<maintainer email="opensource@wolfgangmerkt.com">Wolfgang Merkt</maintainer>
<license>BSD</license>

<url>http://ros.org/wiki/octomap_mapping</url>
<url type="bugtracker">https://github.com/OctoMap/octomap_mapping/issues</url>
<url type="repository">https://github.com/OctoMap/octomap_mapping</url>
<author>Armin Hornung</author>

<buildtool_depend>ament_cmake</buildtool_depend>

<exec_depend>octomap_server</exec_depend>

<buildtool_depend>catkin</buildtool_depend>
<run_depend>octomap_server</run_depend>
<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>

<export>
<metapackage/>
<build_type>ament_cmake</build_type>
</export>
</package>
165 changes: 90 additions & 75 deletions octomap_server/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,105 +1,120 @@
cmake_minimum_required(VERSION 3.0.2)
cmake_minimum_required(VERSION 3.5)
project(octomap_server)

set(PACKAGE_DEPENDENCIES
roscpp
visualization_msgs
sensor_msgs
pcl_ros
pcl_conversions
nav_msgs
std_msgs
std_srvs
octomap_ros
octomap_msgs
dynamic_reconfigure
nodelet
)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})

find_package(catkin REQUIRED COMPONENTS ${PACKAGE_DEPENDENCIES})
find_package(ament_cmake_auto REQUIRED)
ament_auto_find_build_dependencies()

find_package(octomap REQUIRED)
add_definitions(-DOCTOMAP_NODEBUGOUT)
ament_auto_add_library(octomap_server_static SHARED
src/octomap_server_static.cpp
)

include_directories(
include
${catkin_INCLUDE_DIRS}
${OCTOMAP_INCLUDE_DIRS}
target_link_libraries(octomap_server_static
${OCTOMAP_LIBRARIES}
${PCL_LIBRARIES}
)

generate_dynamic_reconfigure_options(cfg/OctomapServer.cfg)
rclcpp_components_register_node(octomap_server_static
PLUGIN "octomap_server::OctomapServerStatic"
EXECUTABLE octomap_server_static_node
)

catkin_package(
INCLUDE_DIRS include
LIBRARIES ${PROJECT_NAME}
CATKIN_DEPENDS ${PACKAGE_DEPENDENCIES}
DEPENDS OCTOMAP
ament_auto_add_library(octomap_server SHARED
src/octomap_server.cpp
)

set(LINK_LIBS
target_link_libraries(octomap_server
${OCTOMAP_LIBRARIES}
${catkin_LIBRARIES}
${PCL_LIBRARIES}
)

add_library(${PROJECT_NAME} src/OctomapServer.cpp src/OctomapServerMultilayer.cpp src/TrackingOctomapServer.cpp)
target_link_libraries(${PROJECT_NAME} ${LINK_LIBS})
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_gencfg)
rclcpp_components_register_node(octomap_server
PLUGIN "octomap_server::OctomapServer"
EXECUTABLE octomap_server_node
)

add_library(${PROJECT_NAME}_color src/OctomapServer.cpp src/OctomapServerMultilayer.cpp src/TrackingOctomapServer.cpp)
target_link_libraries(${PROJECT_NAME}_color ${LINK_LIBS})
add_dependencies(${PROJECT_NAME}_color ${PROJECT_NAME}_gencfg)
target_compile_definitions(${PROJECT_NAME}_color PUBLIC COLOR_OCTOMAP_SERVER)
ament_auto_add_library(octomap_server_multilayer SHARED
src/octomap_server.cpp
src/octomap_server_multilayer.cpp
)

add_executable(octomap_server_node src/octomap_server_node.cpp)
target_link_libraries(octomap_server_node ${PROJECT_NAME} ${LINK_LIBS})
target_link_libraries(octomap_server_multilayer
${OCTOMAP_LIBRARIES}
${PCL_LIBRARIES}
)

add_executable(octomap_color_server_node src/octomap_server_node.cpp)
target_link_libraries(octomap_color_server_node ${PROJECT_NAME}_color ${LINK_LIBS})
rclcpp_components_register_node(octomap_server_multilayer
PLUGIN "octomap_server::OctomapServerMultilayer"
EXECUTABLE octomap_server_multilayer_node
)

add_executable(octomap_server_static src/octomap_server_static.cpp)
target_link_libraries(octomap_server_static ${PROJECT_NAME} ${LINK_LIBS})
ament_auto_add_library(tracking_octomap_server SHARED
src/octomap_server.cpp
src/tracking_octomap_server.cpp
)

add_executable(octomap_server_multilayer src/octomap_server_multilayer.cpp)
target_link_libraries(octomap_server_multilayer ${PROJECT_NAME} ${LINK_LIBS})
target_link_libraries(tracking_octomap_server
${OCTOMAP_LIBRARIES}
${PCL_LIBRARIES}
)

add_executable(octomap_saver src/octomap_saver.cpp)
target_link_libraries(octomap_saver ${PROJECT_NAME} ${LINK_LIBS})
rclcpp_components_register_node(tracking_octomap_server
PLUGIN "octomap_server::TrackingOctomapServer"
EXECUTABLE tracking_octomap_server_node
)

add_executable(octomap_tracking_server_node src/octomap_tracking_server_node.cpp)
target_link_libraries(octomap_tracking_server_node ${PROJECT_NAME} ${LINK_LIBS})
ament_auto_add_library(color_octomap_server SHARED
src/octomap_server.cpp
)

# Nodelet
add_library(octomap_server_nodelet src/octomap_server_nodelet.cpp)
target_link_libraries(octomap_server_nodelet ${PROJECT_NAME} ${LINK_LIBS})
target_link_libraries(color_octomap_server
${OCTOMAP_LIBRARIES}
${PCL_LIBRARIES}
)

add_library(octomap_color_server_nodelet src/octomap_server_nodelet.cpp)
target_link_libraries(octomap_color_server_nodelet ${PROJECT_NAME}_color ${LINK_LIBS})
rclcpp_components_register_node(color_octomap_server
PLUGIN "octomap_server::ColorOctomapServer"
EXECUTABLE color_octomap_server_node
)

# install targets:
install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_color
octomap_server_node
octomap_color_server_node
octomap_server_static
octomap_server_multilayer
octomap_saver
octomap_tracking_server_node
octomap_server_nodelet
octomap_color_server_nodelet
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
target_compile_definitions(color_octomap_server PUBLIC COLOR_OCTOMAP_SERVER)

ament_auto_add_library(octomap_saver SHARED
src/octomap_saver.cpp
)

install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
target_link_libraries(octomap_saver
${OCTOMAP_LIBRARIES}
)

install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
rclcpp_components_register_node(octomap_saver
PLUGIN "octomap_server::OctomapSaver"
EXECUTABLE octomap_saver_node
)

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

ament_auto_package(
INSTALL_TO_SHARE
launch
params
)

install(FILES
nodelet_plugins.xml
color_nodelet_plugins.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
install(PROGRAMS
scripts/octomap_eraser_cli.py
DESTINATION lib/${PROJECT_NAME}
)
26 changes: 0 additions & 26 deletions octomap_server/cfg/OctomapServer.cfg

This file was deleted.

7 changes: 0 additions & 7 deletions octomap_server/color_nodelet_plugins.xml

This file was deleted.

Loading