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
Additional features for the Python3 Simple Navigator Commander #2415
Comments
To add on to
as far as I can see, simple navigator does not work if SLAM-Toolbox is doing the localization because of its reliance on the nav2_amcl node |
Yeah, that's part of what that should do, have options for the nodes to wait on and not assume which are in place if the user can provide better estimates. |
Do not understand "calling the controller" and "Call common recoveries" wait for navigation refers to function "waitUntilNav2Active" ? ComputePathToPose and ComputePathThroughPoses take planner_id and use_start, should these be given overrides similar to bt override ? |
Its the analog to getPlan by calling the planner server, but for local trajectory planning via the controller server. See the Call common recoveries is the same, have With planning/control/recoveries, a Python application can have essentially full control over Nav2 without the Behavior Tree to create a simple application if they like or call servers to compute particular values for debug / application needs.
They can, yes, I added a new bullet around having the Python3 APIs be able to specify the full action request API like algorithm IDs, but not have them be required if the action doesn't require them.
Yeah, so by default we wait for BT Nav and AMCL. Instead, we should have those be the default arguments, but allow them to be overrided to use some others instead in case they have other servers. If not using AMCL for SLAM, then the wait for initial pose bit doesn't make sense either, that's a special case for localization (e.g. non-mapping) |
I'm working on adding wait, spin and backup. Spin and backup make sense to me but I'm not sure how wait is expected to work in a python script. As far as I understand in a BT, the wait node would stall the BT. In a python script, it would behave like a time.sleep()? |
Essentially, yes. I agree it might not make too much sense actually to include in its own right. You could simply sleep in the python script. I think its OK to skip unless you feel it would be good to add to be complete |
For setting parameters, I adapted this class to handle it. This can be massaged into the simple commander
|
Did you add the SetExternalParam class somewhere or that's just a draft? Can't find it |
No, that's just a draft I put together while working on another project and needed the capability in short order. |
Has the development on the following issue item been completed?
I am working on multi-robot stuff; having the nav2 simple commander API use namespaces would be really helpful. |
I do not believe it is done (yet) |
Cool! I'll raise a PR in a few days for this then! |
Update: I have the initial name space thing working on a single robot with namespace argument set as "" (This is for sanity check to ensure the normal functionality of simple commander is not affected). But I am having issues testing the multirobot functionality of nav2. I am checking out to the humble branch and then running: Then in another terminal I am running the following test-script. The DDS that I am running is cycloneDDS. However, when I run the above script I get data on the Can someone help me figure out where I am going wrong?? Am I missing a step? |
The text was updated successfully, but these errors were encountered: