Skip to content

Migrate ROS2 launch files to better_launch - #1015

Open
Flova wants to merge 6 commits into
mainfrom
feature/better_launch
Open

Flova wants to merge 6 commits into
mainfrom
feature/better_launch

Conversation

@Flova

@Flova Flova commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary

Proposed changes

Related issues

Checklist

  • Run pixi run build
  • Write documentation
  • Test on your machine
  • Test on the robot
  • Create issues for future work
  • Triage this PR and label it

Flova and others added 2 commits July 8, 2026 16:19
…ib/better_launch

subrepo:
  subdir:   "src/lib/better_launch"
  merged:   "99aea1704"
upstream:
  origin:   "https://github.com/dfki-ric/better_launch.git"
  branch:   "main"
  commit:   "99aea1704"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "ea10886"
Ports all bitbots launch files (XML .launch and the existing ROS2
python .launch.py files) to better_launch, replacing the ROS2 launch
system entirely. Old launch files are removed; new ones keep the same
name with a .launch.py extension and preserve all original arguments,
conditionals, includes, and node configuration.

Also:
- Reorganizes pixi.toml: moves the 5 new better_launch pypi deps
  (click, docstring_parser, osrf_pycommon, prompt_toolkit,
  setproctitle) into their alphabetical spots with a comment on why
  each was added.
- Updates setup.py launch-file globs (*.launch -> *.launch.py).
- Updates scripts/ros.plugin.sh (rl alias) and
  scripts/deploy/tasks/launch.py to use the new `bl` CLI instead of
  `ros2 launch`.
- Updates docs referencing `ros2 launch` commands.

Packages under src/lib/ are left untouched; their existing ROS2
launch files are included transparently via bl.include().

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Cornelius Krupp and others added 4 commits July 9, 2026 18:03
Preserve the existing PR commits and better_launch migration while bringing
in current main. Carry upstream launch settings into the converted Python
launch files and regenerate the lockfile for the combined dependencies.

Keep the PR calibration values and kick communication rate where both
branches changed the same settings. Retain upstream DSD changes, which
already include the PR behavior changes.
@jaagut

jaagut commented Sep 11, 2026

Copy link
Copy Markdown
Member

Before merging, please resolve the better_launch version and packaging discrepancies:

  • The vendored upstream revision is 99aea1704, four commits after release v1.6.0, although package.xml and setup.py still report 1.0.2. Current upstream main (6954f0ca) is another four commits ahead.
  • Our copy has local patches in node.py and launcher.py, including pass_launch_func_default=False, which two launch files depend on. These patches are not in current upstream, so stock upstream is not a drop-in replacement.
  • I found no documented rationale for vendoring. No matching package was found in this workspace’s configured Conda channels, but the Bit-Bots custom Conda recipe already targets a different revision (bbb904c9) labelled 1.0.4.

Please agree on a canonical revision, reconcile the version metadata, document or upstream the required patches, and decide whether to retain the subrepo or provide a patched Conda package through Pixi for both architectures.

Posted on Jan’s behalf by Codex (GPT-6), based on repository and upstream inspection.

@MegaIng

MegaIng commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

The patches were done to fix annoyances with the console output of better launch, as well as reduce the chance of introducing accidental global dependencies:

  • Better launch defaults to providing all arguments passed to the main launch file to all children. While this is useful for e.g. sim, it risks introducing surprising changes in behavior via hidden connections, so we added a default option to disable it.
  • By default, better launch logs all commands executed at log level info. This makes the output unusable because we e.g. transfer the robot model file via parameters. This was worked around by limiting the length of output, but tbh this is not an optimal solution
  • By default, it also infos the output of all exec commands. This again makes the log output unusable because of the robot model which gets transformed via xacro. This was solved by moving the logging here into debug
  • Better launch was using the python standard log level name WARNING, which doesn't work for the ros logger.

I have not checked what kind of changes were made upstream, maybe some or all of these issues were already resolved. I don't think vendoring is absurd since it seems likely that we will need to make further patches to keep the software usable for us, but upstreaming these patches also isn't a bad idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🆕 New

Development

Successfully merging this pull request may close these issues.

3 participants