Ask Your Question
1

husky exploration demo in melodic

asked 2019-03-02 16:10:01 -0500

kitkatme gravatar image

updated 2019-04-02 18:33:35 -0500

jayess gravatar image

Although Husky is not technically supported yet for ROS melodic, it did work to run the Husky demos 1-3 here so I am hopeful I can get the 4th demo to run, frontier exploration. But in running that demo (and it does run, just doesn't do exploration) there is an issue because the files in frontier exploration were moved and renamed in the melodic release. I am fairly new to ROS, so I don't know how to properly make the change.

Here is the original Husky exploration launch file:

<launch>

    <node pkg="frontier_exploration" type="explore_client" name="explore_client" output="screen"/>

    <node pkg="frontier_exploration" type="explore_server" name="explore_server" output="screen">

        <param name="frequency" value="1.0"/>

        <!-- Should be less than sensor range -->
        <param name="goal_aliasing" value="2.0"/>

        <rosparam file="$(find husky_navigation)/config/costmap_common.yaml" command="load" ns="explore_costmap" />
        <rosparam file="$(find husky_navigation)/config/costmap_exploration.yaml" command="load" ns="explore_costmap" />

      </node>
</launch>

The names in both type fields are no longer used. I think explore_server is now called exploration_server, but explore_client I am less sure of. There is something called plugin_client, and the methods in each seem to match up pretty well. Has anyone else already run into this and fixed it? Or if not, does anyone have an idea of the changes that need to be made to the husky files to run the latest version of frontier_exploration?

As mentioned, exploration demo does run, it just does not actually explore. As it starts it gives an error though:

ERROR: cannot launch node of type [frontier_exploration/explore_client]: can't locate node [explore_client] in package [frontier_exploration]
ERROR: cannot launch node of type [frontier_exploration/explore_server]: can't locate node [explore_server] in package [frontier_exploration]

Other info: Ubuntu bionic 18.04, ROS melodic. I'm using the husky package for kinetic and frontier_exploration package for melodic.

edit retag flag offensive close merge delete

Comments

I'm having the same errors as you, on both melodic and kinetic.

ZeroSan gravatar imageZeroSan ( 2019-04-02 05:30:40 -0500 )edit

I managed to run frontier exploration with rosrun exploration_server exploration.launch. However, there was a severe warning message and the robot didn't explore the map. Let me know if you are facing the same issues.

[ WARN] [1554219803.512461144]: Please select an initial point for exploration inside the polygon
[ INFO] [1554219808.539661530]: Sending goal
[ INFO] [1554219808.548820923]: Updating polygon
[ INFO] [1554219808.548869413]: Requesting a goal
[ INFO] [1554219808.549878112]: Robot is now at 0.991692, 0.071822
[ INFO] [1554219808.549969368]: Robot moving to: 1.000000, 1.000000
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
ZeroSan gravatar imageZeroSan ( 2019-04-02 10:50:40 -0500 )edit

Yeah when I eventually got it running I got the same severe warning, which didn't make the program crash but no exploration happened, like you said. I switched to using the explore_lite package, which conveniently doesn't require you to enter a polygon, it explores the area until there are no more frontiers. And most importantly, works :)

kitkatme gravatar imagekitkatme ( 2019-04-02 13:15:31 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-04-02 13:22:32 -0500

kitkatme gravatar image

Eventually figured it out. Replace the first two nodes shown in the original post (in the exploration.launch file) with:

<node pkg="exploration_server" type="plugin_client" name="plugin_client" output="screen">

</node>

<node pkg="exploration_server" type="exploration_server_node" name="exploration_server_node" output="screen">

However, as mentioned in the comments, the package still doesn't explore, but it now does the same thing for Husky that it does for the other robots I tried it on (namely, shows the severe warning mentioned in the comments). I also had to download a handful of packages from source just to get the Husky packages to run at all, as described in this answer.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2019-03-02 16:10:01 -0500

Seen: 127 times

Last updated: Apr 02