Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

melodic failed to request goal #47

Open
JuliusSustarevas opened this issue May 27, 2019 · 6 comments
Open

melodic failed to request goal #47

JuliusSustarevas opened this issue May 27, 2019 · 6 comments

Comments

@JuliusSustarevas
Copy link

JuliusSustarevas commented May 27, 2019

Hi,
I'm running melodic, properly setup navigation stack, latest melodic-devel branch
I'm trying to use the point-click tool from Rviz and I find an issue very similar to #41

However it happens later on after polygon is generated.

       [WARN] [1558978984.946517955, 746.901000000]: Please select an initial point for exploration inside the polygon
       [ INFO] [1558978987.503531121, 749.439000000]: Sending goal
       [ INFO] [1558978987.514613285, 749.447000000]: Updating polygon
       [ INFO] [1558978987.514674446, 749.447000000]: Requesting a goal
       Warning: class_loader.ClassLoader: SEVERE WARNING!!! Attempting to unload library while objects created by this loader exist in the heap! You should delete your objects before attempting to unload the library or destroying the ClassLoader. The library will NOT be unloaded.
     at line 122 in /tmp/binarydeb/ros-melodic-class-loader-0.4.1/src/class_loader.cpp

My explore_costmap params look like this:

       #must match incoming static map
        global_frame: map
        robot_base_frame: base_link
        resolution: 0.05

        rolling_window: false
        track_unknown_space: true

        plugins:

            - {name: static,           type: "costmap_2d::StaticLayer"}
            - {name: polygon_layer,    type: "polygon_layer::PolygonLayer"}
            #Can disable sensor layer if gmapping is fast enough to update scans
            - {name: sensor,           type: "costmap_2d::ObstacleLayer"}
            - {name: inflation,        type: "costmap_2d::InflationLayer"}

        static:
            #Can pull data from gmapping, map_server or a non-rolling costmap
            # map_topic: /map
            map_topic: move_base/global_costmap/costmap
            subscribe_to_updates: true

        polygon_layer:
            resize_to_polygon: true

Any advice for debugging direction?

@PSotiriadis
Copy link

Hi,
I had the same problem as you and I found where the problem is and a solution for that.
To explain, I will post two graphs. The first will be a rosgraph using explore_lite and the
second a rosgraph using frontier_exploration.

explore_lite:
rosgraph_explorelite

frontier_exploration:
rosgraph_frontier_exploration

As you can see, in the first screenshot there is a bidirectional connection between explore node and move_base (move_base/action_topics) but in the second screenshot there is no connection between exploration_server_node and move_base. And exactly that is the problem you mentioned.

So in code you need to change exploration_server/src/exploration_server.cpp. The original (problematic) code is:
default_frontier_code

As you see exploration_server_node communicates with p3_001/move_base node which is not exist. Now you need to change the node to /move_base in order to be able to use frontier_exploration.
corrected_frontier_code

After this change the rosgraph for frontier_exploration will be:
rosgraph_frontier_exploration_working

But now there is another problem. If a polygon is set inside map (turquoise color), then everything is working properly. But exploration_server_node dies if the defined exploration polygon is bigger than the map (created from SLAM). For example if you choose this polygon:
frontier_rviz_error_case
you will receive the following error and frontier exploration will stop:
frontier_error

That means that if you use gmapping, you can configure initial map (see gmapping xmin, xmax, ymin, ymax parameters) to be big enough to satisfy your desired exploration polygon. But if you want to use frontier_exploration with cartographer there is a Problem, because using cartographer you can not define the initial size of the map and at the beginning you receive a map with size relative to your laser range(map is as small as possible to reduce CPU load). But I think its better to create a new issue for this problem.

I hope I helped you

@kristfrizh
Copy link

Hello
I'm still encountered error after following yours way.

Is there anything else that i can do?

I'm using also melodic with jackal simulation
thank you

@PSotiriadis
Copy link

Hi
Can you display the error and a screenshot of your rosgraph??? I think it is another error.
Thanks

@kristfrizh
Copy link

kristfrizh commented Aug 11, 2020 via email

@paulbovbel
Copy link
Owner

Hi folks, I apologise, I haven't had the time to bring the melodic branch up to snuff after a sizeable refactor - and hence never cut a melodic releaser. PRs are welcome and appreciated!

@kristfrizh
Copy link

kristfrizh commented Aug 13, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants