Dependencies Index: Difference between revisions

From Rsewiki
(Created page with "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 covera...")
 
 
(5 intermediate revisions by the same user not shown)
Line 5: Line 5:
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.
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
=== 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) ===


Purpose: Small utility libraries and launch helpers used across the workspace (xacro helpers, launch conveniences, python utilities).
Purpose: Small utility libraries and launch helpers used across the workspace (xacro helpers, launch conveniences, python utilities).
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:
* 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


```bash
* 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.
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).
 
- 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).
 
If you want, I can expand individual sections with example launch commands, config locations, and common troubleshooting notes.

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``).

opennav_coverage

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).