Porting dlux_global_planner to ROS 2 Dashing
sloretz opened this issue · 2 comments
I'm looking into what it would take to port dlux_global_planner
to ROS 2 Dashing. Hopefully you don't mind if I ask a few questions.
- Is someone already working on this?
- If yes and they stopped, is their progress available to start from?
- What needs to be ported before
dlux_global_planner
?- It looks like:
nav_core2
,nav_grid
,dlux_plugins
,global_planner_tests
,nav_grid_iterators
,nav_grid_pub_sub
- Are any of these already ported?
- It looks like:
- How much of
nav_core2
overlaps withnav2_tasks
?- Should a ROS 2 port of
dlux_global_planner
usenav_core2::GlobalPlanner
ornav2_tasks::ComputePathToPose...
?
- Should a ROS 2 port of
- Where should ports of these packages live?
ros2
branch on this repo?- ros-planning/navigation2?
- Anything else I should know or questions I should have asked?
Should a ROS 2 port of dlux_global_planner use nav_core2::GlobalPlanner or nav2_tasks::ComputePathToPose...?
@sloretz Nav2 interfaces with planning and control through ROS2 actions. Dlux would need an action service for nav2_msgs::action::ComputePathToPose
. Since we are using behavior trees (BT), nav2_tasks::ComputePathToPose
defines a BT action node for getting a plan from an action call.
A few random things to consider:
- Lifecycle enabled. Design changes needed (if any at all) to make it LIfecycle friendly, and have that in mind during porting process.
- World representation. Nav2 attempts to separate world representation from the planners and controllers. Currently,
nav2::navfn_planner
gets the costmap from a service call tonav2::WorldModel
. - Costmaps. We ported a version of @DLu's costmap package about a year ago, and I don't think we have kept up with updates and have probably diverged a bit.
- Compatibility with
Locomotor
. If there are plans to portLocomotor
to ROS2,Dlux Planner
should be compatible with both.
Where should ports of these packages live?
@sloretz I'll leave that up to you and @DLu. If you decide you want to put this in navigation2, we'd be happy to add it and will support you as much as possible. My desire is to integrate this and navigation2 as much as possible, and where not possible, make it easy to swap back and forth between them.