Dependencies Index: Difference between revisions
| (4 intermediate revisions by the same user not shown) | |||
| Line 7: | Line 7: | ||
=== Fields2Cover === | === Fields2Cover === | ||
Purpose: Complete coverage path planning library providing swath generation, headland generation, route ordering, and path smoothing. | '''Purpose:''' Complete coverage path planning library providing swath generation, headland generation, route ordering, and path smoothing. | ||
Where used: ``opennav_coverage`` and Fejemis coverage planners. | Where used: ``opennav_coverage`` and Fejemis coverage planners. | ||
Notes: Prefer the workspace copy (``src/deps/Fields2Cover``) when building — installing a distro package can produce header/ABI conflicts. | '''Notes:''' Prefer the workspace copy (``src/deps/Fields2Cover``) when building — installing a distro package can produce header/ABI conflicts. | ||
=== ldlidar_stl_ros2 === | === ldlidar_stl_ros2 === | ||
Purpose: Driver and adapter for the LD-series LiDAR hardware used on Fejemis. Publishes 2D scans used by SLAM and Nav2. | '''Purpose:''' Driver and adapter for the LD-series LiDAR hardware used on Fejemis. Publishes 2D scans used by SLAM and Nav2. | ||
Where used: ``fejemis_maploc`` LiDAR bringup and Nav2 costmaps. | Where used: ``fejemis_maploc`` LiDAR bringup and Nav2 costmaps. | ||
Notes: Launch configuration often exposes serial port and container placement arguments (see ``launch/lidar.launch.py``). | '''Notes:''' Launch configuration often exposes serial port and container placement arguments (see ``launch/lidar.launch.py``). | ||
=== opennav_coverage === | === opennav_coverage === | ||
Purpose: Wraps Fields2Cover into ROS 2 lifecycle components and provides a Nav2-compatible Complete Coverage Task Server. | '''Purpose:''' Wraps Fields2Cover into ROS 2 lifecycle components and provides a Nav2-compatible Complete Coverage Task Server. | ||
Where used: Optional coverage navigation component integrated by ``fejemis_maploc`` when coverage support is enabled. | Where used: Optional coverage navigation component integrated by ``fejemis_maploc`` when coverage support is enabled. | ||
Notes: Depends on Fields2Cover; keep both workspace copies consistent. | '''Notes:''' Depends on Fields2Cover; keep both workspace copies consistent. | ||
=== raubase_core === | === raubase_core === | ||
Purpose: Core robot control messages, adapters, and helpers (includes ``RoverCommand``, ``rover_2_twist`` adapter, and mixers). | '''Purpose:''' Core robot control messages, adapters, and helpers (includes ``RoverCommand``, ``rover_2_twist`` adapter, and mixers). | ||
Where used: Bridge and simulator control paths; adapters that keep simulation and real hardware command interfaces aligned. | Where used: Bridge and simulator control paths; adapters that keep simulation and real hardware command interfaces aligned. | ||
Notes: Building ``raubase_core`` alongside simulation ensures consistent message formats for Gazebo and the real robot. | '''Notes:''' Building ``raubase_core`` alongside simulation ensures consistent message formats for Gazebo and the real robot. | ||
=== ros_arcana (arcana_python, arcana_tools) === | === ros_arcana (arcana_python, arcana_tools) === | ||
| Line 47: | Line 47: | ||
== Building and Recommendations == | == Building and Recommendations == | ||
* Build the workspace copy of deps first so downstream packages use the in-tree install. Example: | |||
colcon build --symlink-install --packages-up-to fields2cover | |||
colcon build --symlink-install | |||
`` | * If you previously installed a system package (for example ``ros-jazzy-fields2cover``), uninstall it if you want the workspace copy to be authoritative. Use your system package manager (``apt remove ros-jazzy-fields2cover``) with care; sudo is required. | ||
* If a build fails with missing headers, check that the workspace-installed ``fields2cover`` CMake config is being found (see CMakeCache or the ``build/*/CMakeFiles/CMakeConfigureLog.yaml`` entries). | |||
Latest revision as of 10:43, 28 May 2026
Back to Fejemis ROS2 Software
Dependencies Index
This page summarises the main vendored dependencies under ``src/deps`` and their role in the Fejemis stack. The repository keeps these in-tree to avoid mismatched versions and to make development reproducible.
Fields2Cover
Purpose: Complete coverage path planning library providing swath generation, headland generation, route ordering, and path smoothing.
Where used: ``opennav_coverage`` and Fejemis coverage planners.
Notes: Prefer the workspace copy (``src/deps/Fields2Cover``) when building — installing a distro package can produce header/ABI conflicts.
ldlidar_stl_ros2
Purpose: Driver and adapter for the LD-series LiDAR hardware used on Fejemis. Publishes 2D scans used by SLAM and Nav2.
Where used: ``fejemis_maploc`` LiDAR bringup and Nav2 costmaps.
Notes: Launch configuration often exposes serial port and container placement arguments (see ``launch/lidar.launch.py``).
Purpose: Wraps Fields2Cover into ROS 2 lifecycle components and provides a Nav2-compatible Complete Coverage Task Server.
Where used: Optional coverage navigation component integrated by ``fejemis_maploc`` when coverage support is enabled.
Notes: Depends on Fields2Cover; keep both workspace copies consistent.
raubase_core
Purpose: Core robot control messages, adapters, and helpers (includes ``RoverCommand``, ``rover_2_twist`` adapter, and mixers).
Where used: Bridge and simulator control paths; adapters that keep simulation and real hardware command interfaces aligned.
Notes: Building ``raubase_core`` alongside simulation ensures consistent message formats for Gazebo and the real robot.
ros_arcana (arcana_python, arcana_tools)
Purpose: Small utility libraries and launch helpers used across the workspace (xacro helpers, launch conveniences, python utilities).
Where used: Launch utilities, xacro handling, and small tooling used by multiple packages (e.g., ``fejemis_sim`` uses arcana launch helpers).
Notes: These packages are lightweight but important for consistent launch behaviour across machines and ROS distros.
Building and Recommendations
- Build the workspace copy of deps first so downstream packages use the in-tree install. Example:
colcon build --symlink-install --packages-up-to fields2cover colcon build --symlink-install
- If you previously installed a system package (for example ``ros-jazzy-fields2cover``), uninstall it if you want the workspace copy to be authoritative. Use your system package manager (``apt remove ros-jazzy-fields2cover``) with care; sudo is required.
- If a build fails with missing headers, check that the workspace-installed ``fields2cover`` CMake config is being found (see CMakeCache or the ``build/*/CMakeFiles/CMakeConfigureLog.yaml`` entries).