Comments (4)
I agree, I think also having the reloading service work in either case (https://github.com/ros-navigation/navigation2/blob/main/nav2_docking/opennav_docking/src/dock_database.cpp#L45) would be a positive improvement in this part of the code as well (I'm not 100% sure what I was thinking there). But, if that function always returns true when validly configured (i.e. no corrupted yaml files) and the dock plugins has to have at least 1 valid option, your change would virtually eliminate that issue.
I agree. I think the reloading service should be available as long as there is at least 1 valid dock plugin
How I get around this now is just having a dummy_dock that we ignore, but it would be great not to require such a thing. I'm of 2 minds if I should ask you to remove that from our YAML file. I think its useful to have an example nonetheless. Perhaps you could comment it out so its just there for illustration purposes in your PR?
I think it is important to keep it at least as an example to make the configuration easier for users. In the PR below, I have commented it out.
I have opened a PR-4442 with these changes. We can further discuss changes in it if that's okay with you.
from navigation2.
Seems like a good improvement to make it fully optional in case you want to not specify dock instances. You are required to load all the dock plugins required - since those must be known by the server for use in the database or via the action request. But, instances could be made fully optional. Note that specifying the full dock information at request-time is really meant more as a mechanism for testing and if you're setting up a facility with new docks live. If you have a predefined set of docks, you should really load them either via the Nav2 configuration file or linking the dock's list file as laid out in the tutorial https://docs.nav2.org/tutorials/docs/using_docking.html
Open to submitting a PR?
from navigation2.
@SteveMacenski Yes, I agree. This functionality would provide flexibility to set up a facility with new docks live, and even facilitate integration with other higher-level systems that manage the storage of robot data via database or other mechanisms.
Open to submitting a PR?
I am open to submitting it. Just to discuss the approach, I think the functionality could be achieved by logging a good warning message here and returning true. And also, adding some log messages elsewhere to be more informative to the user.
What do you think? Do you think there are any additional requirements or considerations in order to add this feature?
from navigation2.
I think the functionality could be achieved by logging a good warning message here and returning true
I agree, I think also having the reloading service work in either case (https://github.com/ros-navigation/navigation2/blob/main/nav2_docking/opennav_docking/src/dock_database.cpp#L45) would be a positive improvement in this part of the code as well (I'm not 100% sure what I was thinking there). But, if that function always returns true when validly configured (i.e. no corrupted yaml files) and the dock plugins has to have at least 1 valid option, your change would virtually eliminate that issue.
How I get around this now is just having a dummy_dock that we ignore, but it would be great not to require such a thing. I'm of 2 minds if I should ask you to remove that from our YAML file. I think its useful to have an example nonetheless. Perhaps you could comment it out so its just there for illustration purposes in your PR?
from navigation2.
Related Issues (20)
- Nav2 Docking: Optional Collision Checking on undocking / docking HOT 2
- Nav2 Docking: Option for Non-Charging Dock Plugin Types
- Problem with bt_navigator on Humble HOT 1
- Rviz tool to get the cost of a costmap cell
- potential bugs perhaps casued by `transformReadyCallback` of `tf2_ros::MessageFilter` HOT 3
- Services for `get_costmap` are advertised with same name HOT 1
- Problems with Reverse Motion for Ackermann Steering Vehicles Using Nav2 MPPI Controller HOT 8
- Navigation2 for Jazzy HOT 5
- NAV2 Doesn't Abort The NAV2 Goal HOT 1
- ROS1 leftovers HOT 1
- Use static map in outdoor environment without fixed initial pose HOT 2
- Add missing descriptions to package.xml
- NullPtr bug during the `computeVelocityCommands()` during shutdown HOT 5
- NullPtr bug during the `getRobotPose()` calculation of `costmap_ros_` in `nav2_controller` HOT 4
- NullPtr bug during the `computeVelocityCommands()` calculation of `nav2_regulated_pure_pursuit_controller` HOT 1
- controller_server `computeControl()` blocks simple_action_server `work()` HOT 1
- cross-compiling ros2-humble nav2_costmap_2d error HOT 1
- Docking - Unexpected behavior when trying to dock while already docked or undock while already not docked HOT 4
- Port nav2 systems test to new gazebo HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from navigation2.