Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
humble

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

No version for distro jazzy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
humble

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

No version for distro kilted showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
humble

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
rolling

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

Package Summary

Version 1.2.16
License GPLv3
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bobcamera/bobcamera.git
VCS Type git
VCS Version main
Last Updated 2026-02-27
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Launching package for BobCamera

Maintainers

  • Bob Universal Object Tracker

Authors

No additional authors.

Launch Package

Overview

Launch Files:

  • Application Launch File
  • Update Config Files Launch File
  • Kernel Launch File
  • Display Infrastructure Launch File
  • Monitoring Infrastructure Launch File
  • Web Infrastructure Launch File
  • QHY Launch File

Application Launch File

This is the “entry point” launch file which defines several launch parameters which are driven using environment variables. These environment variables will determine which nodes are run using if launch conditions. Needless to say this launch file will in turn calls all the other launch files.

Update Config Files Launch File

A launch file whose primary purpose is to update both the application and camera yaml configuration files. The yaml configuration files contain all the node parameters which the nodes use to define their processing behaviour.

Kernel Launch File

Manages is the main image processing pipeline. It runs as a single container process and all nodes communicate via RPC, not network. As resolutions increase we have found ourselves in a position where the loopback address gets saturated and therefore slows down the processing pipeline. Passing data via IPC avoids this from happening. All images available external to the kernel should be resized appropriately therefore any node that requires the full image will need to be part of the kernel process.

Display Infrastructure Launch File

Manages all nodes required for display to work. This will include viewer and compressor nodes. Viewer nodes are used outside of the web ui while compressor nodes are used by the web ui to transform frames into compressed jpg images which a browser understands.

Monitoring Infrastructure Launch File

Manages all nodes dealing with monitoring and observing the system. These include for example nodes that determine if its day or night, what sort of cloud cover are we dealing with, what is the condition of the tracker and and also a node that is able to feed data into prometheus so that you can Visualise that data using Grafana.

Web Infrastructure Launch File

Manages nodes dealing with web stuff, currently the main ones are the ROS Bridge server as well as the WebApi nodes.

QHY Launch File

CHANGELOG
No CHANGELOG found.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
humble

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
humble

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
humble

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

bob_launch package from bob_launch repo

bob_launch

ROS Distro
humble

Package Summary

Version 1.0.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/bob-ros2/bob_launch.git
VCS Type git
VCS Version main
Last Updated 2026-03-28
Dev Status MAINTAINED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

ROS package for easy launching of ROS nodes and launch files

Additional Links

Maintainers

  • Bob Ros

Authors

  • Bob Ros

ROS Package bob_launch

ROS 2 CI License

bob_launch is a powerful meta-launcher for ROS 2 that enables dynamic system orchestration using YAML or JSON configuration files. It allows you to define, compose, and launch complex ROS 2 graphs without writing boilerplate Python launch files.

High-Level Capabilities

  • Dynamic Orchestration: Spawn nodes or include other launch files based on external configuration.
  • Composition over Coding: Define your entire ROS system in simple YAML.
  • Streamlined Workflow: Use the launch.sh wrapper or native ROS 2 launch arguments.
  • Auto-Abort Protection: Optionally shut down the entire launch tree if any critical node exits (ideal for Docker/CI).
  • Global Parameters: Inject a shared parameter file into all nodes launched within a configuration.
  • Path Placeholders: Use //PKGSHARE/ (current node package) or //PKGSHARE:pkg/ to dynamically resolve ROS 2 package share directories in parameters and arguments.
  • Environment Substitution: Support for shell-like ${VAR} or ${VAR:-default} syntax in all configuration fields and relevant launch arguments.

Native ROS 2 Usage (Preferred)

You can call the launch file directly using standard ROS 2 launch arguments:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml

To pass an optional global node parameter file:

ros2 launch bob_launch generic.launch.py config:=my_config.yaml config_nodes:=node_params.yaml

Note: You can also use the environment variable BOB_LAUNCH_CONFIG=./my_config.yaml as an alternative to the config:= argument.

Fast Execution: launch.sh

The launch.sh script is a convenient wrapper that simplifies execution by handling environment variables and temporary file management for you.

1. Launch from a file

ros2 run bob_launch launch.sh my_config.yaml

2. Launch with a global parameter file

ros2 run bob_launch launch.sh my_config.yaml global_params.yaml

3. Launch from a JSON config file

ros2 run bob_launch launch.sh my_config.json

Advanced Usage

bob_launch is designed to be highly scriptable, making it an ideal tool for AI Agents needing to spawn ROS components on the fly.

Pipe a String Directly (Dynamic Spawning)

An agent can generate a YAML string and pipe it directly to the launcher without creating a persistent file:

echo "- name: talker
  package: demo_nodes_cpp
  executable: talker" | ros2 run bob_launch launch.sh

Multi-File Composition

You can quickly composite different system “layers” (e.g., base drivers + perception + mission logic) by concatenating files into the pipe:

cat base_robot.yaml nav2_stack.yaml custom_logic.yaml | ros2 run bob_launch launch.sh

Dynamic Substitution & Placeholders

bob_launch supports powerful dynamic string substitution in all configuration fields and launcher arguments (like config:= and config_nodes:=).

Environment Variables (${VAR})

Supports shell-like syntax for dynamic values:

  • ${MYVAR}: Replaces with the value or an empty string.
  • ${MYVAR:-/default/path/}: Replaces with the value or the specified default if unset.

Path Placeholders (//PKGSHARE)

Avoid hardcoded absolute paths by dynamically resolving ROS 2 package share directories:

  • //PKGSHARE/: Resolves to the share directory of the package defined for the current entity (implicit).
  • //PKGSHARE:pkg_name/: Resolves to the share directory of pkg_name (explicit).

Combination & CLI Usage

These mechanisms can be combined and even used directly in the ros2 launch command arguments:

ros2 launch bob_launch generic.launch.py \
  config:='//PKGSHARE:my_pkg/config/${ROBOT_ENV:-dev}.yaml'

To disable environment substitution, set BOB_SUBSTITUTE_ENV_VARS=0.

Configuration Schema

Spawning Nodes

```yaml

  • name: usb_cam # Optional: defaults to executable_name + random suffix package: usb_cam executable: usb_cam_node_exe arguments: # Optional: list of CLI arguments
    • –ros-args

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package bob_launch

1.0.1 (2026-02-03)

  • Fix linter and style issues for ROS2 compliance
  • Standardize docstrings and copyright headers
  • Refactor launch parameter
  • Add support for 'prefix' parameter in configuration
  • Add support for inline 'parameters' in node configuration
  • Add support for '//PKGSHARE' and '//PKGSHARE:pkg' placeholders for dynamic path resolution
  • Add support for environment variable substitution (${VAR} and ${VAR:-default}) in configuration files
  • Enable dynamic placeholder resolution for 'config' and 'config_nodes' launch arguments
  • Standardize placeholder resolution across all configuration fields including 'launch_ns'
  • Add support for native ROS 2 remappings in node configurations
  • Add support for [respawn_delay]{.title-ref} in node configurations
  • Contributors: Bob Ros

1.0.0 (2026-02-02)

  • Initial release
  • Contributors: Bob Ros

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged bob_launch at Robotics Stack Exchange