forked from sniekum/ar_track_alvar
-
Notifications
You must be signed in to change notification settings - Fork 135
Ros2 devel #90
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
Open
pmusau17
wants to merge
27
commits into
ros-perception:ros2
Choose a base branch
from
pmusau17:ros2-devel
base: ros2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Ros2 devel #90
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
98ebf81
Initial changes for ros2 port
pmusau17 ebb0cfa
don't add logs
pmusau17 d3cbb1e
successful partial build
pmusau17 d19cad6
fixing marker detect
pmusau17 1eccb62
Port towards nodes
pmusau17 57b3a8e
TinyXML changes?
pmusau17 5a5f369
Individual Marker Done?
pmusau17 fc21070
port of three nodes
pmusau17 9f984ae
Package builds successfully
pmusau17 b6ffcf2
temporary fix for cmake dev warnings
pmusau17 35f4e5c
type mismatch fix, and beginning unit tests
pmusau17 145691d
well then
pmusau17 83657f6
playing from bag works
pmusau17 93e880a
Individual marker test
pmusau17 d86804b
publishes at least
pmusau17 6c1d44c
ported most of the tests
pmusau17 b3111c5
connected component changes
pmusau17 544d7cd
Figured out segfault
pmusau17 25718cf
Unit tests and k matrix fix
pmusau17 7b7a2cd
transforms and unit tests
pmusau17 59a2392
port launch files
pmusau17 4423d09
unit tests and launch files
pmusau17 2d2d084
testing and parameters
pmusau17 93259d1
clean up
pmusau17 f6688f1
remove vscode files
pmusau17 5e0e077
readme fixes
pmusau17 251dd48
code review changes
pmusau17 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,33 @@ | ||
| See [ROS wiki](http://wiki.ros.org/ar_track_alvar) for the users document. | ||
|
|
||
| ### Testing (Build from Source) | ||
|
|
||
| The testing suite for this package makes use of a ros1 bag, and depends on the following [repo](https://github.com/ros2/rosbag2_bag_v2). In order to get it to work | ||
| you need to source both the ros1 underlay and the ros2 underlay in your ~/.bashrc file. Do this in a new terminal. | ||
|
|
||
| ``` | ||
| # ROS1 | ||
| source /opt/ros/noetic/setup.bash | ||
|
|
||
| # ROS2 | ||
| source /opt/ros/foxy/setup.bash | ||
| source /usr/share/colcon_cd/function/colcon_cd.sh | ||
| export _colcon_cd_root=/opt/ros/foxy | ||
|
|
||
| ``` | ||
|
|
||
| ### Deprecation Warning | ||
|
|
||
| As far as we can tell the vendor package for Alvar is no longer being actively being maintained. | ||
| The underlying OpenCV Implementation has been upgraded, but it is unclear how worthwhile it is to keep maintaining this package. | ||
| Users should consider using the tag tracking [libraries](https://docs.opencv.org/4.2.0/d5/dae/tutorial_aruco_detection.html) natively supported by OpenCV as they handle a greater variety of tags, and provide similar functionality. | ||
|
|
||
| # Miscellaneous | ||
|
|
||
| Building this package requires building [perception_pcl](https://github.com/ros-perception/perception_pcl/tree/foxy-devel) from source. | ||
|
|
||
| In your workspace perform the following: | ||
|
|
||
| ``` | ||
| git clone https://github.com/ros-perception/perception_pcl/ -b foxy-devel | ||
| ``` | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,183 +1,186 @@ | ||
| cmake_minimum_required(VERSION 2.8.3) | ||
| cmake_minimum_required(VERSION 3.5) | ||
| project(ar_track_alvar) | ||
|
|
||
| set(MSG_DEPS | ||
| ar_track_alvar_msgs | ||
| std_msgs | ||
| sensor_msgs | ||
| geometry_msgs | ||
| visualization_msgs) | ||
|
|
||
| find_package(catkin COMPONENTS | ||
| genmsg | ||
| roscpp | ||
| tf | ||
| tf2 | ||
| image_transport | ||
| resource_retriever | ||
| cv_bridge | ||
| pcl_ros | ||
| pcl_conversions | ||
| message_generation | ||
| ${MSG_DEPS} | ||
| dynamic_reconfigure | ||
| cmake_modules | ||
| REQUIRED) | ||
| find_package(ament_cmake REQUIRED) | ||
| find_package(ament_cmake_auto REQUIRED) | ||
| ament_auto_find_build_dependencies() | ||
|
|
||
| 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.") | ||
| if(NOT DEFINED CMAKE_SUPPRESS_DEVELOPER_WARNINGS) | ||
| set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS 1 CACHE INTERNAL "No dev warnings") | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this new? |
||
| 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 | ||
| CATKIN_DEPENDS | ||
| ar_track_alvar_msgs | ||
| std_msgs | ||
| roscpp | ||
| tf | ||
| tf2 | ||
| message_runtime | ||
| image_transport | ||
| sensor_msgs | ||
| geometry_msgs | ||
| visualization_msgs | ||
| resource_retriever | ||
| cv_bridge | ||
| pcl_ros | ||
| pcl_conversions | ||
| dynamic_reconfigure | ||
| find_package(rclcpp REQUIRED) | ||
| find_package(tf2_ros REQUIRED) | ||
| find_package(tf2 REQUIRED) | ||
| find_package(image_transport REQUIRED) | ||
| find_package(resource_retriever REQUIRED) | ||
| find_package(cv_bridge REQUIRED) | ||
| find_package(perception_pcl REQUIRED) | ||
| find_package(pcl_conversions REQUIRED) | ||
| find_package(ar_track_alvar_msgs REQUIRED) | ||
| find_package(std_msgs REQUIRED) | ||
| find_package(sensor_msgs REQUIRED) | ||
| find_package(tf2_geometry_msgs REQUIRED) | ||
| find_package(geometry_msgs REQUIRED) | ||
| find_package(rosbag2_bag_v2_plugins REQUIRED) | ||
| find_package(visualization_msgs REQUIRED) | ||
| find_package(PCL REQUIRED QUIET COMPONENTS common io) | ||
| find_package(PCL REQUIRED) | ||
| find_package(Eigen3 REQUIRED) | ||
| find_package(tinyxml_vendor REQUIRED) | ||
|
|
||
| include_directories(include) | ||
|
|
||
| # Kinect filtering code | ||
| set(KINECT_FILTERING_TARGETS kinect_filtering medianFilter) | ||
| set(ALVAR_TARGETS ar_track_alvar individualMarkers individualMarkersNoKinect trainMarkerBundle findMarkerBundles findMarkerBundlesNoKinect createMarker) | ||
|
|
||
| set(dependencies | ||
| OpenCV | ||
| tf2_ros | ||
| tf2 | ||
| pcl_conversions | ||
| std_msgs | ||
| tinyxml_vendor | ||
| image_transport | ||
| perception_pcl | ||
| visualization_msgs | ||
| rclcpp | ||
| resource_retriever | ||
| geometry_msgs | ||
| tf2_geometry_msgs | ||
| cv_bridge | ||
| sensor_msgs | ||
| ar_track_alvar_msgs | ||
| ) | ||
|
|
||
| include_directories(include | ||
| ${catkin_INCLUDE_DIRS} | ||
| include_directories(include | ||
| ${OpenCV_INCLUDE_DIRS} | ||
| ${TinyXML_INCLUDE_DIRS} | ||
|
|
||
| ${PCL_COMMON_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}) | ||
|
|
||
| # Kinect filtering code | ||
| set(KINECT_FILTERING_TARGETS kinect_filtering medianFilter) | ||
| 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_LIBRARIES} ${PCL_LIBRARIES} tinyxml) | ||
| ament_target_dependencies(ar_track_alvar ${dependencies}) | ||
|
|
||
| add_library(kinect_filtering src/kinect_filtering.cpp) | ||
| target_link_libraries(kinect_filtering ${catkin_LIBRARIES}) | ||
| add_dependencies(kinect_filtering ${GENCPP_DEPS}) | ||
| ament_target_dependencies(kinect_filtering ${dependencies}) | ||
|
|
||
| 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) | ||
| add_library(medianFilter src/medianFilter.cpp) | ||
| target_link_libraries(medianFilter ar_track_alvar ${PCL_LIBRARIES} ${TinyXML_LIBRARIES}) | ||
| ament_target_dependencies(medianFilter ${dependencies}) | ||
|
|
||
| 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 ar_track_alvar kinect_filtering ${PCL_LIBRARIES} ${TinyXML_LIBRARIES}) | ||
| ament_target_dependencies(individualMarkers ${dependencies}) | ||
|
|
||
| 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 ar_track_alvar) | ||
| ament_target_dependencies(individualMarkersNoKinect ${dependencies}) | ||
|
|
||
| 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 ar_track_alvar ${PCL_LIBRARIES} ${TinyXML_LIBRARIES}) | ||
| ament_target_dependencies(trainMarkerBundle ${dependencies}) | ||
|
|
||
|
|
||
| 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 ar_track_alvar kinect_filtering medianFilter ${PCL_LIBRARIES} ${TinyXML_LIBRARIES}) | ||
| ament_target_dependencies(findMarkerBundles ${dependencies}) | ||
|
|
||
| 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 ar_track_alvar ${PCL_LIBRARIES} ${TinyXML_LIBRARIES}) | ||
| ament_target_dependencies(findMarkerBundlesNoKinect ${dependencies}) | ||
|
|
||
| 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 ar_track_alvar ${PCL_LIBRARIES} ${TinyXML_LIBRARIES}) | ||
| ament_target_dependencies(createMarker ${dependencies}) | ||
|
|
||
|
|
||
| ament_export_include_directories(include) | ||
| ament_export_libraries(ar_track_alvar) | ||
| ament_export_dependencies(OpenCV ar_track_alvar_msgs std_msgs rclcpp tf2_ros tf2 message_runtime image_transport sensor_msgs geometry_msgs visualization_msgs resource_retriever cv_bridge perception_pcl pcl_conversions) | ||
|
|
||
|
|
||
| install(TARGETS ${ALVAR_TARGETS} ${KINECT_FILTERING_TARGETS} | ||
| ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} | ||
| LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} | ||
| RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} | ||
| ARCHIVE DESTINATION lib | ||
| LIBRARY DESTINATION lib | ||
| RUNTIME DESTINATION lib/${PROJECT_NAME} | ||
| ) | ||
|
|
||
| install(DIRECTORY include/${PROJECT_NAME}/ | ||
| DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} | ||
| DESTINATION include/${PROJECT_NAME} | ||
| ) | ||
|
|
||
| install(DIRECTORY launch bundles | ||
| DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/ | ||
| DESTINATION share/${PROJECT_NAME} | ||
| ) | ||
|
|
||
| if (CATKIN_ENABLE_TESTING) | ||
| find_package(catkin REQUIRED COMPONENTS roslaunch rostest) | ||
|
|
||
|
|
||
| if(BUILD_TESTING) | ||
|
|
||
| file(GLOB LAUNCH_FILES launch/*.launch test/*.test) | ||
| foreach(LAUNCH_FILE ${LAUNCH_FILES}) | ||
| roslaunch_add_file_check(${LAUNCH_FILE} USE_TEST_DEPENDENCIES) | ||
| endforeach() | ||
| find_package(ament_lint_auto REQUIRED) | ||
| ament_lint_auto_find_test_dependencies() | ||
|
|
||
| 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) | ||
| set(_PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}") | ||
| if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug") | ||
| set(PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE_DEBUG}") | ||
| endif() | ||
|
|
||
| # Test bag playing (if this fails all other tests will fail) | ||
| add_launch_test("test/test_ar_track_alvar_bag.py" | ||
| PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}" | ||
| ) | ||
|
|
||
| # Test Individual Markers in launch test | ||
| add_launch_test("test/test_ar_track_alvar_individual_markers.py" | ||
| PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}" | ||
| ) | ||
|
|
||
| # Legacy Tests | ||
| add_launch_test("test/test_ar_legacy.py" | ||
| PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}" | ||
| ) | ||
|
|
||
| # Test Launch Files | ||
| add_launch_test("test/test_launch_files.py" | ||
| PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE}" | ||
| ) | ||
kscottz marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| endif() | ||
|
|
||
| ament_package() | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.