Code Monkey home page Code Monkey logo

Comments (11)

ipa-rmb avatar ipa-rmb commented on August 17, 2024

There might be differences to the paper due to further developments in the software after publication.

However, you should get different results for different algorithms. Can you please report in detail you you started the software and how you configured the algorithm setting? It sounds like the desired algorithm was not conveyed to the software as a new setting.

from ipa_coverage_planning.

ZengJunTao111 avatar ZengJunTao111 commented on August 17, 2024

Ok, so first I started the turtlebot3 emulation system, and then I ran roslaunch ipa_room_exploration room_exploration_action_server.launch, Then go to the room_exploration_client.launch file and give the file parameter an absolute path to a yaml file, and use the test map, without modifying the code parameters in the meantime. Finally, run roslaunch ipa_room_exploration room_exploration_client.launch, and the result is just like the diagram shown above. The algorithm used here is Boustrophedon Coverage Path Planning. Of course, I also tried to modify the room_exploration_algorithm to test the map using a different algorithm, but the results were basically the same. What is the reason for this?

from ipa_coverage_planning.

ipa-rmb avatar ipa-rmb commented on August 17, 2024

@ipa-foj Do you have any idea for the observed behavior?

from ipa_coverage_planning.

ipa-rmb avatar ipa-rmb commented on August 17, 2024

So you have changed the algorithm in file ros/launch/room_room_exploration_action_server_params.yaml, right?

# this variable selects the algorithm for room exploration
# 1 = grid point explorator
# 2 = boustrophedon explorator
# 3 = neural network explorator
# 4 = convexSPP explorator
# 5 = flowNetwork explorator
# 6 = energyFunctional explorator
# 7 = voronoi explorator
# 8 = boustrophedon variant explorator
# int
room_exploration_algorithm: 8

Have you tried to start dynamic reconfigure to see which algorithm is currently active? You should even be able to switch the algorithm at runtime via dynamic reconfigure.

from ipa_coverage_planning.

ipa-foj avatar ipa-foj commented on August 17, 2024

The provided action client is supposed to be just a simple example to show how the code can be used in general, it is recommended to write your own ROS action client in your statemachine or sequence control.

The client also shows how to change the settings of the server during runtime using dynamic reconfigure, just as @ipa-rmb mentioned.

Please see this line in the code, if this isn't changed or removed the server will always use the same algorithm, regardless of the yaml parameters.

from ipa_coverage_planning.

ZengJunTao111 avatar ZengJunTao111 commented on August 17, 2024

Yes, every time I switch algorithms in a yaml file, I ran both of these instructions again: roslaunch ipa_room_exploration room_exploration_action_server.launch and roslaunch ipa_room_exploration room_exploration_client.launch.

from ipa_coverage_planning.

ZengJunTao111 avatar ZengJunTao111 commented on August 17, 2024

Moreover, I think the results obtained by running the algorithm are too different from the pictures in your paper. May I ask why this is? Thank you.

from ipa_coverage_planning.

ipa-foj avatar ipa-foj commented on August 17, 2024

There are 2 reasons for this:

  1. As @ipa-rmb mentioned we updated the code after the paper creation. Especially the commonly called algorithm "8" is an updated variant of the Boustrophedon Planner from the original paper.
  2. In the paper we initially separated the map into individual rooms. In the paper we took the ground-truth data for this segmentation, while in production you have to use the ipa_room_segmentation package for that. This is one reason why you should create your own action clients in your sequence control.

from ipa_coverage_planning.

ZengJunTao111 avatar ZengJunTao111 commented on August 17, 2024

Hello foj, first of all, thank you very much for your answer. I found that it was indeed the problem of drc_exp.setConfig("room_exploration_algorithm", 8), which caused me to switch different algorithms with the same result. When I annotate this line of code and then switch between different algorithms I get a different result.
Then there is the ipa_room_segmentation and ipa_room_exploration. Aren't these two modules separate? Do I have to use room_segmentation when testing with test_maps in the room_exploration module?

from ipa_coverage_planning.

ipa-foj avatar ipa-foj commented on August 17, 2024

Yes these two are separate, as they can be used individually, depending on the needs you have. You have to decide what you want to achieve and implement your code according to that, we can just provide you the tools to achieve it.

You don't have to use the segmentation with the test_maps, but then the outcome of course cannot be exactly the same as in the paper.

from ipa_coverage_planning.

ZengJunTao111 avatar ZengJunTao111 commented on August 17, 2024

foj, thank you very much for your kindness. What I want for now is to achieve the same result as the diagram below in the room_exploration package, and have an idea if I can generate overlay paths in the map and save the generated paths in yaml files.
Could you please wait until I use the ipa_room_segmentation package in my later study to consult you? Thank you very much.
8a78880c2da1edd8219ecfb2fe9ce90

from ipa_coverage_planning.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.