0
$\begingroup$

I'm currently working on implementing a custom planner integrated with the rosbot-autonomy stack. How this was created was through the steps shown in Navigation2's tutorial for creating a custom planner plugin.

For the sake of optimization, I want to completely eliminate the calculation of the costmap and want to work on just the sensor data alone to detect obstacles. I have successfully implemented sensor data handling in my custom planner. The issue is, there are other components of Nav2 integrated with rosbot-autonomy that depend on the costmap (controller, behavior servers, etc) where any parameter changes in the configuration file (setting update_frequency=0, or passing no plugins for the static, inflation or obstacle layer) does not work, with the navigation lifecycle manager simply infinitely returning Waiting for service controller_server/get_state...

I was wondering if there is a way to configure the stack to accomplish the goal of completely eliminating costmap calculation and dependency without having to make architectural changes to the core navigation2 architecture. My goal is to have complete independence of the rosbot-autonomy stack from costmap calculation.

rosbot-autonomy is available as a public github repository, making the setup easy to reproduce on any system. Thank you for your time, and please let me know if additional information is required!

$\endgroup$
2
  • $\begingroup$ You don't tell us why you want to "eliminate costmap dependency", but it's unusual that your robot does not need a map. You never need to specify a goal for the robot to navigate to? $\endgroup$ Commented Nov 14 at 13:28
  • $\begingroup$ Hi, thanks for your comment! The reason I don't want a costmap is because it discretizes the environment and computes the cost for every cell. The custom planner doesn't need all this information and only needs to query for the distance of an obstacle from a specific position. $\endgroup$ Commented Nov 14 at 20:49

1 Answer 1

0
$\begingroup$

You can write a minimal costmap layer plugin that either (a) writes nothing (an empty/“null” layer) or (b) converts your sensor messages into costmap cells. Load that plugin into local/global costmaps. Nav2 sees a working costmap but it’s cheap or sensor-driven. https://docs.nav2.org/plugin_tutorials/docs/writing_new_costmap2d_plugin.html

$\endgroup$
1
  • $\begingroup$ Thank you so much for your answer! It was crystal clear and concise, I've managed to eliminate full costmap calculation now. $\endgroup$ Commented Nov 14 at 20:46

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.