Skip to content

Commit

Permalink
Noetic devel (#89)
Browse files Browse the repository at this point in the history
* FindMarkerBundlesNoKinect: implement params and dynamic reconfigure

* publish transform in output frame

* FindMarkerBundles: clear errors reported by linter

* FindMarkerBundles: clear errors reported by linter

* FindMarkerBundlesNoKinect: restructure

* FindMarkerBundles: port features from FindMarkerBundlesNoKinect

* add pre-commit config

* reformat files

* convert OpenCV C API to C++ API

* more work on CV C to C++ port

* Bump CMake version to avoid CMP0048 warning

* fix add_dependencies

* update travis config

* only test noetic

* disable rostests

* fix catkin_lint

* added time stamp of image to header of array message

* Camera: fix problem when findHomography returns empty matrix

* Marker: copy vector on initialize

* fix OpenCV error

* remove deprecated cmake_policy

* Review Changes

---------

Co-authored-by: Alexander Rössler <[email protected]>
Co-authored-by: Alexander Rössler <[email protected]>
Co-authored-by: fmessmer <[email protected]>
Co-authored-by: Christopher Lalau Keraly <[email protected]>
Co-authored-by: Denis Lehmann <[email protected]>
  • Loading branch information
6 people authored May 25, 2023
1 parent a870d5f commit 9c62568
Show file tree
Hide file tree
Showing 154 changed files with 23,140 additions and 19,218 deletions.
39 changes: 12 additions & 27 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,22 @@
sudo: required
dist: trusty
language: generic

compiler:
- gcc
services:
- docker

notifications:
email:
on_success: change
on_failure: always
recipients:
- [email protected]
env:
global:
- ROS_PARALLEL_JOBS=-j4
- CATKIN_LINT=pedantic
- CATKIN_LINT_ARGS='--ignore description_boilerplate'
- CMAKE_ARGS=-DCMAKE_BUILD_TYPE=Release
- PYLINT_ARGS='--output-format=parseable --errors-only'
- PYLINT_CHECK=true
- ROS_REPO=main
matrix:
- ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true ABICHECK_URL='github:ros-perception/ar_track_alvar/#kinetic-devel'
- ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
- ROS_DISTRO="kinetic" PRERELEASE=true
- ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true
- ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
- ROS_DISTRO="lunar" PRERELEASE=true
- ROS_DISTRO="melodic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true ABICHECK_URL='github:ros-perception/ar_track_alvar/#kinetic-devel'
- ROS_DISTRO="melodic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
- ROS_DISTRO="melodic" PRERELEASE=true
matrix:
allow_failures:
- env: ROS_DISTRO="kinetic" PRERELEASE=true
- env: ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true
- env: ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
- env: ROS_DISTRO="lunar" PRERELEASE=true
- env: ROS_DISTRO="melodic" PRERELEASE=true
- ROS_DISTRO=noetic
install:
- git clone https://github.com/ros-industrial/industrial_ci.git .ci_config

- git clone --quiet --depth 1 https://github.com/ros-industrial/industrial_ci.git .industrial_ci -b master
script:
- .ci_config/travis.sh
- .industrial_ci/travis.sh
177 changes: 70 additions & 107 deletions ar_track_alvar/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,151 +1,127 @@
cmake_minimum_required(VERSION 2.8.3)
cmake_minimum_required(VERSION 3.0.2)
project(ar_track_alvar)

set(MSG_DEPS
ar_track_alvar_msgs
std_msgs
sensor_msgs
geometry_msgs
visualization_msgs)

find_package(catkin COMPONENTS
genmsg
find_package(catkin REQUIRED COMPONENTS
${PROJECT_NAME}_msgs
cmake_modules
cv_bridge
dynamic_reconfigure
geometry_msgs
image_transport
message_generation
pcl_conversions
pcl_ros
resource_retriever
roscpp
sensor_msgs
std_msgs
tf
tf2
image_transport
resource_retriever
cv_bridge
pcl_ros
pcl_conversions
message_generation
${MSG_DEPS}
dynamic_reconfigure
cmake_modules
REQUIRED)
visualization_msgs)

find_package(Eigen3 REQUIRED)
find_package(OpenCV REQUIRED)
find_package(TinyXML REQUIRED)

include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()

cmake_policy(SET CMP0046 OLD)

# dynamic reconfigure support
generate_dynamic_reconfigure_options(cfg/Params.cfg)

catkin_package(
INCLUDE_DIRS include
LIBRARIES ar_track_alvar
LIBRARIES ${PROJECT_NAME}
CATKIN_DEPENDS
ar_track_alvar_msgs
std_msgs
${PROJECT_NAME}_msgs
cv_bridge
dynamic_reconfigure
geometry_msgs
image_transport
message_runtime
pcl_conversions
pcl_ros
resource_retriever
roscpp
sensor_msgs
std_msgs
tf
tf2
message_runtime
image_transport
sensor_msgs
geometry_msgs
visualization_msgs
resource_retriever
cv_bridge
pcl_ros
pcl_conversions
dynamic_reconfigure
)

include_directories(include
include_directories(include
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
${TinyXML_INCLUDE_DIRS}

)

set(GENCPP_DEPS ar_track_alvar_msgs_gencpp std_msgs_gencpp sensor_msgs_gencpp geometry_msgs_gencpp visualization_msgs_gencpp)

add_library(ar_track_alvar
src/Camera.cpp
src/CaptureDevice.cpp
src/Pose.cpp
src/Marker.cpp
src/MarkerDetector.cpp
add_library(${PROJECT_NAME}
src/Bitset.cpp
src/Rotation.cpp
src/CvTestbed.cpp
src/Camera.cpp
src/CaptureDevice.cpp
src/CaptureFactory.cpp
src/CaptureFactory_unix.cpp
src/FileFormatUtils.cpp
src/Threads.cpp
src/Threads_unix.cpp
src/Mutex.cpp
src/Mutex_unix.cpp
src/ConnectedComponents.cpp
src/Line.cpp src/Plugin.cpp
src/Plugin_unix.cpp
src/CvTestbed.cpp
src/DirectoryIterator.cpp
src/DirectoryIterator_unix.cpp
src/Draw.cpp
src/Util.cpp
src/FileFormatUtils.cpp
src/Filter.cpp
src/Kalman.cpp
src/kinect_filtering.cpp
src/Optimization.cpp
src/Line.cpp
src/Marker.cpp
src/MarkerDetector.cpp
src/MultiMarker.cpp
src/MultiMarkerBundle.cpp
src/MultiMarkerInitializer.cpp)
target_link_libraries(ar_track_alvar ${OpenCV_LIBS} ${TinyXML_LIBRARIES} ${catkin_LIBRARIES})
add_dependencies(ar_track_alvar ${GENCPP_DEPS})
src/MultiMarkerInitializer.cpp
src/Mutex.cpp
src/Mutex_unix.cpp
src/Optimization.cpp
src/Plugin.cpp
src/Plugin_unix.cpp
src/Pose.cpp
src/Rotation.cpp
src/Threads.cpp
src/Threads_unix.cpp
src/Util.cpp
)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} ${TinyXML_LIBRARIES} ${catkin_LIBRARIES})
add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

# Kinect filtering code
set(KINECT_FILTERING_TARGETS kinect_filtering medianFilter)

add_library(kinect_filtering src/kinect_filtering.cpp)
target_link_libraries(kinect_filtering ${catkin_LIBRARIES})
add_dependencies(kinect_filtering ${GENCPP_DEPS})
add_dependencies(kinect_filtering ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_library(medianFilter src/medianFilter.cpp)
target_link_libraries(medianFilter ar_track_alvar ${catkin_LIBRARIES})
add_dependencies(medianFilter ${GENCPP_DEPS})

set(ALVAR_TARGETS ar_track_alvar individualMarkers individualMarkersNoKinect trainMarkerBundle findMarkerBundles findMarkerBundlesNoKinect createMarker ar_track_alvar)
target_link_libraries(medianFilter ${PROJECT_NAME} ${catkin_LIBRARIES})
add_dependencies(medianFilter ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_executable(individualMarkers nodes/IndividualMarkers.cpp)
target_link_libraries(individualMarkers ar_track_alvar kinect_filtering ${catkin_LIBRARIES})
add_dependencies(individualMarkers ${PROJECT_NAME}_gencpp ${GENCPP_DEPS} ${PROJECT_NAME}_gencfg)
target_link_libraries(individualMarkers ${PROJECT_NAME} kinect_filtering ${catkin_LIBRARIES})
add_dependencies(individualMarkers ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_executable(individualMarkersNoKinect nodes/IndividualMarkersNoKinect.cpp)
target_link_libraries(individualMarkersNoKinect ar_track_alvar ${catkin_LIBRARIES})
add_dependencies(individualMarkersNoKinect ${PROJECT_NAME}_gencpp ${GENCPP_DEPS} ${PROJECT_NAME}_gencfg)
target_link_libraries(individualMarkersNoKinect ${PROJECT_NAME} ${catkin_LIBRARIES})
add_dependencies(individualMarkersNoKinect ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_executable(trainMarkerBundle nodes/TrainMarkerBundle.cpp)
target_link_libraries(trainMarkerBundle ar_track_alvar ${catkin_LIBRARIES})
add_dependencies(trainMarkerBundle ${PROJECT_NAME}_gencpp ${GENCPP_DEPS})
target_link_libraries(trainMarkerBundle ${PROJECT_NAME} ${catkin_LIBRARIES})
add_dependencies(trainMarkerBundle ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_executable(findMarkerBundles nodes/FindMarkerBundles.cpp)
target_link_libraries(findMarkerBundles ar_track_alvar kinect_filtering medianFilter ${catkin_LIBRARIES})
add_dependencies(findMarkerBundles ${PROJECT_NAME}_gencpp ${GENCPP_DEPS})
target_link_libraries(findMarkerBundles ${PROJECT_NAME} kinect_filtering medianFilter ${catkin_LIBRARIES})
add_dependencies(findMarkerBundles ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_executable(findMarkerBundlesNoKinect nodes/FindMarkerBundlesNoKinect.cpp)
target_link_libraries(findMarkerBundlesNoKinect ar_track_alvar ${catkin_LIBRARIES})
add_dependencies(findMarkerBundlesNoKinect ${PROJECT_NAME}_gencpp ${GENCPP_DEPS})
target_link_libraries(findMarkerBundlesNoKinect ${PROJECT_NAME} ${catkin_LIBRARIES})
add_dependencies(findMarkerBundlesNoKinect ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_executable(createMarker src/SampleMarkerCreator.cpp)
target_link_libraries(createMarker ar_track_alvar ${catkin_LIBRARIES})
add_dependencies(createMarker ${PROJECT_NAME}_gencpp ${GENCPP_DEPS})
target_link_libraries(createMarker ${PROJECT_NAME} ${catkin_LIBRARIES})
add_dependencies(createMarker ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

install(TARGETS ${ALVAR_TARGETS} ${KINECT_FILTERING_TARGETS}
install(TARGETS ${PROJECT_NAME} createMarker findMarkerBundles findMarkerBundlesNoKinect individualMarkers individualMarkersNoKinect kinect_filtering medianFilter trainMarkerBundle
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
Expand All @@ -155,29 +131,16 @@ install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
)

install(DIRECTORY launch bundles
install(DIRECTORY bundles launch
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/
)

if (CATKIN_ENABLE_TESTING)
find_package(catkin REQUIRED COMPONENTS roslaunch rostest)

if(CATKIN_ENABLE_TESTING)
find_package(roslaunch REQUIRED)
find_package(rostest REQUIRED)

file(GLOB LAUNCH_FILES launch/*.launch test/*.test)
foreach(LAUNCH_FILE ${LAUNCH_FILES})
roslaunch_add_file_check(${LAUNCH_FILE} USE_TEST_DEPENDENCIES)
endforeach()

catkin_download_test_data(
${PROJECT_NAME}_4markers_tork.bag
http://download.ros.org/data/ar_track_alvar/ar_track_alvar_4markers_tork_2017-02-08-11-21-14.bag
# Workaround the issue http://answers.ros.org/question/253787/accessing-data-downloaded-via-catkin_download_test_data/
# by downloading into source folder.
#DESTINATION ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/test
DESTINATION ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/test
MD5 627aa0316bbfe4334e06023d7c2b4087
)
add_rostest(test/marker_arg_config-basic.test DEPENDENCIES ${PROJECT_NAME}_4markers_tork.bag)
add_rostest(test/marker_arg_config-full.test DEPENDENCIES ${PROJECT_NAME}_4markers_tork.bag)
add_rostest(test/marker_param_config-basic.test DEPENDENCIES ${PROJECT_NAME}_4markers_tork.bag)
add_rostest(test/marker_param_config-full.test DEPENDENCIES ${PROJECT_NAME}_4markers_tork.bag)
endif()
Loading

0 comments on commit 9c62568

Please sign in to comment.