-
Notifications
You must be signed in to change notification settings - Fork 132
Description
Description
This issue tracks the progress of the ROS 2 port for Fuse, targeting the rolling release of ROS 2.
Some of the work here will be based off the work mentioned in #257.
Architectural Decisions
I will be prioritising API consistency between the ROS 1 and ROS 2 versions of Fuse. This means I won't be looking at high level architectural changes at this time.
Approach
PRs will be sent against the rolling branch on fuse and tf2_2d, working up the dependency graph and doubling back as necessary. (Or more likely, finding features to port as I work up the dependency graph, and port them for downstream packages as well.)
Changes in dependent packages that have to be made as a result of a change in a dependency packages will be made on a best effort basis, but can't be confirmed until they're buildable, so expect bugs in those PRs.
I fully expect fuse_core to take up the bulk of the migration effort. And I also fully expect needing to circle back after things finally build and run.
Progress
General
- Logging fuse -> ROS 2 : Port Logging #279
- Resolve macro usage warnings fuse -> ROS 2: Clean up macro usage warnings #280
- Port Time:
-
Port messages fuse -> ROS 2 fuse_core : Messages and Services #285(DEFERRED to on a per-package basis) - Linting
BONUS (if time permits)
- (Probably bonus, too many parts to shake up) Port the pluginlib usage to rclcpp_components
- "Dynamic reconfigure" for params
Down (Up?) The Dependency Tree
- fuse_msgs
- fuse_core
- Fuse -> ROS 2 fuse_core: Partial port of fuse_core #281
- fuse -> ROS 2 fuse_core : Nodes and Waitables #284 (depends on fuse -> ROS 2 : Port Time #283)
- fuse -> ROS 2 fuse_core : Parameters and Tests #286
- fuse -> ROS 2 fuse_core: Linting #292
- fuse -> ROS 2 fuse_core: Fix Async #293 (should be merged before the one after)
- fuse -> ROS 2 fuse_core: Fix Async (Redux) #294
- fuse -> ROS 2 fuse_core : Messages and Services #285
- fuse_loss:
- fuse_variables:
- fuse_graphs:
- fuse_constraints:
- fuse_publishers
- tf2_2d
- Include required header Scalar.h ros2/geometry2#559
- Port tf2_2d to ROS 2 tf2_2d#5 (depends on above)
- fuse_models
- fuse_optimizers
- fuse_viz
- fuse_tutorials
- fuse_doc
- fuse: Port fuse metapackage #310
- Test fuse_viz when tutorials is done (ROS 2 port of fuse_viz #301)
Additional Notes
- I've tried to migrate away from boost as much as possible (into std), but there aren't equivalents for everything (e.g. serialization).
