Why not include a velocity profile in the controller input path?

asked 2021-04-16 07:38:47 -0500

programmer-man gravatar image

updated 2021-04-16 07:39:40 -0500

In nav2_core::Controller the input path is a nav_msgs/Path which does not allow for the caller to specify a velocity profile. Consider the following motivating examples.

  • We want a different speed while turning and we had that information while building the path.
  • We want the robot to slow down as it enters a main passageway.
  • ...

Now we could achieve these with the max velocity topic by monitoring the robot's progress and updating the topic as necessary but this seems like an awkward coupling and it wouldn't be as accurate as providing the profile upfront.

So my question is should the controller also take in as input a velocity profile perhaps via a new Path message?

edit retag flag offensive close merge delete



As this question feels pretty open ended and subject to individual use cases, it might be more appropriate as an enhancement request for navigation2, or as a discourse discussion topic? I can certainly see the value in the examples you provided.

shonigmann gravatar image shonigmann  ( 2021-04-16 11:40:00 -0500 )edit

Yup, I can ask it there. However, I previously got feedback that ROSAnswers is the more appropriate forum for this type of discussion.

programmer-man gravatar image programmer-man  ( 2021-04-16 11:41:45 -0500 )edit

I'm by no means the authority on the matter, so take what I say with a grain of salt, but I tend to distinguish between the platforms as follows:

Github Issues -> verifiable general bugs/fixes and actionable feature requests ROS Answers -> specific implementation questions and help ROS Discourse -> general discussions and updates

For me, this feels like an actionable feature request... but I am not a maintainer of nav2, so I can't say how they'll react. Otherwise, you could maybe post on ROS discourse to gauge popularity of the idea?

shonigmann gravatar image shonigmann  ( 2021-04-16 11:48:33 -0500 )edit