Goal
When LaunchMap parses a ROS 2 launch file, it may encounter calls to:
FindPackageShare("package_name")
get_package_share_directory("package_name")
These are used to resolve the filesystem path to a package share directory.
Currently, the parser outputs the expression but doesn’t resolve it to the actual path on the system.
The goal of this issue is to update the parser so that whenever it encounters these functions, it resolves the real directory path and includes it in the output.
Acceptance Criteria
- Detect both
FindPackageShare and get_package_share_directory calls during parsing.
- Use ROS 2
ament_index_python.packages.get_package_share_directory to resolve the actual path (or any other approach).
- Update parser output so that:
resolved_path is included alongside the original expression.
- If the package is not found, gracefully handle with a warning in output.
- Add unit tests with minimal launch files to verify both functions.
Sub-Tasks
Notes
This is the base feature for resolving more complex path constructs in the future (PathJoinSubstitution, ParameterFile, etc.).
Goal
When LaunchMap parses a ROS 2 launch file, it may encounter calls to:
FindPackageShare("package_name")get_package_share_directory("package_name")These are used to resolve the filesystem path to a package share directory.
Currently, the parser outputs the expression but doesn’t resolve it to the actual path on the system.
The goal of this issue is to update the parser so that whenever it encounters these functions, it resolves the real directory path and includes it in the output.
Acceptance Criteria
FindPackageShareandget_package_share_directorycalls during parsing.ament_index_python.packages.get_package_share_directoryto resolve the actual path (or any other approach).resolved_pathis included alongside the original expression.Sub-Tasks
FindPackageShare("example_pkg").get_package_share_directory("example_pkg").Notes
This is the base feature for resolving more complex path constructs in the future (
PathJoinSubstitution,ParameterFile, etc.).