Advanced 3D Navigation with ROS

Hi! I’m looking to use the stretch-robot to be able to navigate from one point to another (the another point is determined by using its camera to recognize an object). I was wondering if there was any sample code that involved using ROS packages/python libraries that one can use for navigating from one point to another point while also recognizing the presence the obstacles and planning the navigation route around such obstacles.

As a followup, I’ve been using the stretch_navigation nodes to work with navigation. Everything has worked so far, except that when I try to get the robot to move to a point, I get repeated warnings that the map update loop missed its desire rate of 5 hz before the program is aborted. I’m not sure why this is happening because on RVIZ everything seems to be mapped out pretty well.

Hi, apologies for the delay. @bshah will reply next week when he is back in the office.

bump this topic. would love to learn more about how to use stretch_navigation

Hi @Robot_Lover, thanks for the bump. Good to see you’ve gotten to mapping and navigating with the stretch_navigation package. Could you include the terminal output from when the program is aborted? I have seen a few warnings about the 5hz update loop being missed, however, this does not typically lead to the program aborting.

Additionally, stretch_navigation is one of the topics we’re planning to cover in a series of ROS tutorials about. We aim to begin releasing this tutorials throughout the summer, with announcements posted here on the forum. You may track the progress here.

follow up - this is the error we’ve been getting

[ INFO] [1621310449.133175449]: Setting pose (1621310449.133156): 0.051 0.000 2.724
[ WARN] [1621310472.973498212]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3332 seconds
[ WARN] [1621310473.349714618]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.5094 seconds
[ WARN] [1621310473.736103327]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3864 seconds
[ WARN] [1621310474.002257325]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.4525 seconds
[ WARN] [1621310474.269672622]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.2674 seconds
[ WARN] [1621310474.522382045]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3201 seconds
[ WARN] [1621310474.782012826]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3798 seconds
[ WARN] [1621310475.042601379]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.4403 seconds
[ WARN] [1621310475.444489711]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.2019 seconds
[ WARN] [1621310476.221875072]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3793 seconds
[ WARN] [1621310476.489192843]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.4466 seconds
[ WARN] [1621310477.160606478]: Clearing both costmaps to unstuck robot (3.00m).
[ WARN] [1621310477.954351566]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.2652 seconds
[ WARN] [1621310480.478741929]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3895 seconds
[ WARN] [1621310480.616028467]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3268 seconds
[ WARN] [1621310480.884881728]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3957 seconds
[ WARN] [1621310481.424387580]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.7352 seconds
[ WARN] [1621310481.824494147]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.4001 seconds
[ WARN] [1621310482.231200110]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.4067 seconds
[ WARN] [1621310482.260569577]: Rotate recovery behavior started.

and then the map update loop command continues again for another iteration before finally everything ends with this

[ERROR] [1621310623.042215353]: Aborting because a valid plan could not be found. Even after executing all recovery behaviors

after that the robot does nothing.

This error means that the base planner is unable to find a valid plan for the initial/goal poses you’ve requested in Rviz. We are currently refining the base planner configuration, which may improve the quality of the plans. However, if no plans are currently being found, it could be that the map is of low quality or has too many obstacles for planning to succeed. If you could share what the costmap looks like, I can determine if this is the case.

Hi! Thanks for the response - I’ll upload the maps when I’m back in the lab. If the map is of too low quality, would another solution be to just traverse the path more? Is there a way to tell on Rviz whether the map is of sufficiently high quality?

here are the links to the yaml and pgm file.
jcl379.yaml - Google Drive, jcl379.pgm - Google Drive