Build
Build Troubleshooting#
Package not found after build#
Source your ros2 workspace before running any ros2 commands:
ModuleNotFoundError: No module named 'micipsa_common' or No module named 'utils'#
Symptom: A consuming package's launch file fails at runtime with an import error for either Python package.
Cause: micipsa_common has not been built, the install overlay has not been sourced, or the consuming package is missing the exec_depend/depend entry in its package.xml.
Fix:
Verify the dependency is declared in the consuming package's package.xml.
fatal error: micipsa_common/time.h: No such file or directory#
Symptom: A C++ package fails to compile with a missing header error.
Cause: The consuming package's CMakeLists.txt is missing find_package(micipsa_common REQUIRED), or its package.xml is missing the corresponding dependency declaration.
Fix: Add find_package(micipsa_common REQUIRED) to the consuming package's CMakeLists.txt, link the target against it, and declare <depend>micipsa_common</depend> in its package.xml.
Build fails looking for the utils package directory#
Symptom: colcon build --packages-select micipsa_common fails with a missing directory error referencing common/utils.
Cause: The package is being built outside the full Micipsa workspace, where the sibling common/utils directory referenced by CMakeLists.txt does not exist at the expected relative path.
Fix: Build within the complete Micipsa workspace layout, where common/utils exists alongside the package source tree.
Build fails with catkin-related CMake errors#
Symptom: colcon build fails with errors about missing catkin_package, CATKIN_PACKAGE_LIB_DESTINATION, or similar.
Cause: The wjwwood/serial library has not been patched for ament.
Fix: Follow the instructions in Patching the Serial Library to replace the catkin CMake blocks with ament-compatible equivalents, then rebuild.
serial library not found during build#
Symptom: CMake cannot find the serial package even after patching.
Cause: The patched serial repository has not been built yet, or was built after micipsa_core in the same colcon build invocation.
Fix: Build serial first, then build micipsa_core:
Changes to a .msg file are not reflected#
Symptom: A field added or modified in AprilTagPose.msg or AprilTagPoseArray.msg does not appear when running ros2 interface show.
Cause: Message bindings are generated at build time by rosidl_default_generators. Editing the .msg file alone does not regenerate the installed interface.
Fix: Rebuild the package and re-source the overlay:
