Code Monkey home page Code Monkey logo

Comments (12)

tonynajjar avatar tonynajjar commented on September 26, 2024 1

Can you report the value of use_sim_time for the global_costmap, controller_server and planner_server? The costmaps inherit this parameter from the controller and the planner nodes. See here

from navigation2.

david-wb avatar david-wb commented on September 26, 2024 1

Yup, all good thanks.

from navigation2.

padhupradheep avatar padhupradheep commented on September 26, 2024

Hey, it could probably that, in the launch file, the use_sim_time param might be set to false. Could you please check that?

from navigation2.

david-wb avatar david-wb commented on September 26, 2024

@padhupradheep No, there is not a single instance where use_sim_time is false in my repo.

from navigation2.

david-wb avatar david-wb commented on September 26, 2024

They all show use_sim_time: false. But I set use_sim_time: True for every config in the nav2_params.yaml.

from navigation2.

tonynajjar avatar tonynajjar commented on September 26, 2024

Weird, the next step would be to try to reproduce on our side.

Launch the simulation

Can you send the exact command you ran? (along with any other setup-specific stuff we should know about)

from navigation2.

david-wb avatar david-wb commented on September 26, 2024

If I pass use_sim_time = true to the nav2 bringup, finally everything uses sim time. It seems this global parameter always overrides the params file, even when unset.

    bringup = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(bringup_share + "/launch/bringup_launch.py"),
        launch_arguments={
            "params_file": os.path.join(pkg_share, "config/nav2_params.yaml"),
            "map": os.path.join(pkg_share, "config/map.yaml"),
            "use_sim_time": "True",
        }.items(),
    )

from navigation2.

SteveMacenski avatar SteveMacenski commented on September 26, 2024

@david-wb can you reproduce using the nav2_bringup as the example, not your custom files? That helps us isolate potential problems to bugs in the stack vs bugs potentially present in your custom use. For example, when you launch with use sim time as true/false, do you still see that issue with our default bringup? https://github.com/ros-navigation/navigation2/blob/main/nav2_bringup/launch/tb3_simulation_launch.py

from navigation2.

david-wb avatar david-wb commented on September 26, 2024

Sure, here is the simplest way I can reproduce the issue.

Run

ros2 launch nav2_bringup bringup_launch.py map:=/opt/ros/humble/share/nav2_bringup/maps/turtlebot3_world.yaml

This will use the default nav2 params which have use_sim_time set to True for the /amcl node.

But the actual value is False:

$ ros2 param get /amcl use_sim_time
Boolean value is: False

It seems the use_sim_time param of bringup_launch.py overwrites whatever is present in the params file, even when it is unset. Maybe this is by design, but it means the values of use_sim_time in the params file are always ignored, which is a bit confusing.

from navigation2.

SteveMacenski avatar SteveMacenski commented on September 26, 2024

I just tested

ros2 launch nav2_bringup tb3_simulation_launch.py

steve@reese:~/Documents/navigation2_ws$ ros2 param get /amcl use_sim_time
Boolean value is: True

and

ros2 launch nav2_bringup tb3_simulation_launch.py use_sim_time:=False

steve@reese:~/Documents/navigation2_ws$ ros2 param get /amcl use_sim_time
Boolean value is: False

So this appears to be working in main. Humble's branch is a little different in the use sim time handling, so make sure to use the files from humble to base your launch and nav2 yaml configuration files based off of. If you mix and match you will run into issues since the use sim time handling between the main branch and humble was fundamentally refactored. From experience, I know some users have had issues mixing and matching branch config/launch/nodes so just want to point that out and ask that you test that.

from navigation2.

david-wb avatar david-wb commented on September 26, 2024

The problem is that the launch file will always override whatever is in the params file for the use_sim_time param. It is not an issue for me now that I am aware of it.

from navigation2.

SteveMacenski avatar SteveMacenski commented on September 26, 2024

Yes, this is the case. use_sim_time has always been a "special" parameter that has unique considerations. You can however remove the setting of use_sim_time from your launch files so that it only uses what's in the param files, which should be straight forward.

Does that answer you question?

from navigation2.

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.