Environment
- OS: Ubuntu 22.04
- ROS 2: Humble
- Build tool:
colcon build --symlink-install
- ViSP: built from source
In both visp_tracker and visp_auto_tracker, the current CMakeLists.txt contains incorrect rosbag handling logic.
Problems
-
Invalid download URLs (404)
The CMake code tries to download tutorial bags from GitHub release URLs that return HTTP 404, causing build failures.
-
Incorrect rosbag assumptions in ROS 2
The CMake logic treats tutorial bags as ROS1-style single .bag files, while in ROS 2 a rosbag (*.bag) is a directory containing:
This leads to invalid install() paths and failures with colcon build --symlink-install.
Example problematic CMake code
(from visp_tracker/CMakeLists.txt)
ExternalProject_Add(
external_bag
URL https://github.com/lagadic/vision_visp/releases/download/vision_visp-0.5.0/tutorial-static-box-ros2.bag
)
install(
DIRECTORY externals/src/tutorial-static-box-ros2.bag
DESTINATION share/bag
)
This assumes:
- the URL exists (it returns 404),
- the bag is a single file,
- and the directory always exists at install time.
All of these assumptions are invalid in ROS 2.
Impact
With the default ROS 2 Humble workflow (--symlink-install), both packages can fail to build unless users manually patch the CMakeLists.