-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Nav2 Route Server #5056
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
Nav2 Route Server #5056
Conversation
…d added service to modify a set of closed edges being tracked
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
|
This is really cool, and I'm actually in the middle of trying to implement a similar system for my current workplace. The key difference is that we're doing per-row coverage of a field, and the route is far less dynamic, since the robot needs to load itself for the specific tour based on what the covered edges require (based on the robot's capcity, battery levels etc.) As a result, most of the nominal route planning work has to be done up-front. I did have one question thought: How would you use this to plan a circuit that started and ended in the same location? That seems like a fairly common use case for delivery bots, in addition to coverage based bots like the one I'm working on. As far as I can tell it won't do well if I just ask for a tour of N nodes, ending back at the start. Would a delivery bot that has 3 packages to deliver have to seperately plan a traversal home->A, A->B, B->C, C->home? Our use cases seems to be a variant of that, but since we mostly just traverse one edge at a time as a sub-task, we'd only really use this to get to/from a particular end of a row in the field. Another question: Are the node edges directional, or can they have their directionality locked? In our use case, our robot can't turn around on some edges (too narrow), but it can go forwards or backwards at any time. Right now I'm constraining that by running a custom controller on those edges, and collision aware off the shelf controllers/planners should work (since collision detection should prevent turning as well). We're just being extra cautious since we don't want a planner/controller to get too adventerous in our customer's fields! I'll be keeping an eye on this and either migrating my work towards re-using the paradigms you've developed, or offering some input/code to expand the functionality towards handling our use case better if it doesn't align with the current implementation, but is otherwise compatible. This plus the Fields2Cover integration are very adjacent to what we're doing, which means we might see some more ROS2+Nav2 farming bots complimenting ours soon! The fundamentals seem like what we need, but at least for the time being I think I'll end up just generating the tour and using nav-through-poses. The sementic replanning on failure is super uesful though, and may alone be worth the complexity of migrating ROS versions (Jazzy->Rolling/Kilted), although the timing is quite poor for us. Our product hits the fields in just a few short weeks (and there's no delaying planting!), and while everything is nicely containerized on our end we'll likely be too slammed with troubleshooting to try this out in May. |
|
@josephduchesne in types.hpp , the edges are defined on line 133, so I assume the direction depends on how the graph is designed using the tool. @SteveMacenski |
You can just give planning requests for home->A, A->B, B->..., ...->home individually. You cannot (at this moment) describe home->home through these nodes A,B,C, so that wouldn't be possible anyway to promise you hit A,B,C through a home->home request. With that said, I've anticipated this need and filed a ticket #5082 which describes this as a possible improvement to add in a requirement to go through a certain edge / node in a request. That could be implemented at the planner level or even doing something similar to
All edges are directional. None are bidirectional unless you setup 2x directional nodes making the transition between the two nodes have both options. I didn't include a bidirectional option internally knowing that many times the cost of traversal one way or the other are not the same, and automatically annotating areas with bidirectionality isn't difficult. |
They are related concepts. The operations in the node/edge metadata in the graph are behaviors or semantics that the node / edge themselves are requesting to be performed (think: change max speed, turn on lights, open a door). The operation plugins are the things that take those requests and do the appropriate thing that matches the node/edge metadata. On top of that, operation plugins can also choose nodes/edges that they select to operate on that are not annotated in the node/edge (think: collision checking). That is what the query API is indicating: whether this behavior operation is triggered based on a node, edge, or on general query. I think this is all pretty well described with examples in the readme, but if you look over that in detail but still have questions or something isn't clear, please let me know and I'll work to make things more clear. |
|
basically, I defined the service name as part of the operations.metadata.service_name , inside the plugin loader (geoJson...) the metadata are saved as a map <string,any> in the Node and triggered based on the enum defined in Operation. In the case of the open_door, I create a class OpenDoor that inherits RouteOperationClient and listens to the same service_name defined in the Node. I imagine this class should be a plugin or a separate node? |
|
Maybe these tests will help you understand: https://github.com/ros-navigation/navigation2/blob/nav2_route_server/nav2_route/test/test_operations.cpp#L225-L394 |
|
I know it's mentioned in #5082 somewhat, but I do feel like it's worth addressing here as well, since changing this post-release would be a fairly breaking change. Edges being a line is a major restriction that doesn't really make sense to me in the context of the existing Nav2 system. We have "navigate to pose" and "navigate through poses", but no "navigate along exactly two poses". Wouldn't it be easier to just aim for the following at the outset? This way the existing code could mostly work as is ( It is possible to break the nodegraph up into a bunch of single/dual in/out nodes along a curved edge, but that seems like a poor semantic representation of space. In my prior job, I learned slowly that nothing is truly straight in the built environment, and now that I'm doing agricultural bots straight is an even more fanciful idea. |
|
That has been noted in the 'future improvements' ticket, actually :-) I think there's some effort that's going to go into that, so I think its OK to release it without that. My intention won't be to immediately backport into Jazzy/Humble to give it some 'soaking' time in Rolling before doing so. There's time then before this would be backported that we need to be concerned by API stability. The interfaces are the least of the complexity (i.e. representing them in the files, populating them into files, handling them when generating the paths instead of the straight-lines). Also, I think I'd probably leave the start/end alone and add an additional field to the message instead that would contain a pre-defined path, if provided. I do wonder though if the Edge message is really needing that path info though. I'm guessing if you want a dense path like that you're using the Any interest in contributing that feature? |
|
The use case I'm working on is driving between corn rows in a field. The robot drives 0.5 - 2km "straight" between the rows with extremely tight clearance (lots of different layers policing that tolerence), then in between traversing corn rows it generally has moderate (wider navigation paths) to loose tolerence (around the base station), and corresponding vastly different controller/planner/monitoring configurations in nav2. In reality though, nothing is ever straight so there are waypoints that can be anywhere from 100m apart to 0.5m apart depending on how much of a mess the planter + terrain made of it. Sometimes they swerved around a telephone pole in the middle of the field for example, and that caused all manner of corner cases throughout the otherwise orderly grid. I'm most likely going to create something akin to ExtractRouteNodesAsGoals, but instead ExtractRouteEdgesAsGoals. Your proposal of having an alternate representation that makes nav_msgs::msg::Goals attachabe might work, althought it's making me think that it might be easier to have a metadata attachment system for edges that can attach multiple scalar and spatial representaitons of each edge. For example, how much the traversal of the edge would mow the lawn for a lawnmower, clean the floor for a floor scrubber, tend the crop for a pesticide sprayer etc. Similarly, I'm going to need to attach a whole host of conditions to edges, since one somewhat clunky approach would be to just traverse each edge as a single actionserver call (NavigateThroughPoses), since that allows for easy configuration of that edge's specific needs. Your future work task list mentions several things that we've either actively worked on, or are in the middle of implementing. I might be able to align some of our proprietary solutions with the new route server and get approval to contribute them back, although timelines on that might be several months out given our busy season is now. My half-baked solution to transition smoothing the plan 1-and-a-bit edges at a time, getting the Goals arrays for say edge AB and BC, truncating and interpolating backwards from B in both directions, then using a specialzied planner to compute the transition around B with a radius, and appending that transition to the truncated AB. Once the robot has reached the transition point just into BC, it can compute BC to CD in the same way. This does muddle the constraints on transitions, and I may end up treating transitions as their own seperate entities depending on what works best in practice. |
|
Hi @SteveMacenski thanks for the explanation, i found where the operation is called. I removed that line and I can go to A->B B->A and vicerversa. With that line I can only do A->B and B->A but not back again (pic for reference) Im this pic im trying to reach nodes 21 but the closest point is outisde the map and the local plan fails. |
True, I have another user of this work that has their nodes throughout the field, not just the start/end of the aisles. That way changes over the length can be accounted for. For example:
Sounds reasonable! I just don't love duplicating data in the messages too much such that the
That already exists :-) See the readme on the metadata for nodes and edges in the graph files!
It might be worth having us set up a call to chat about these items and the best path forward to integrate them. It is not currently in my plan to implement any of the future work projects at the moment. I look at these as areas for community contribution to extend the capability, based on some organizations that need those capabilities. It sounds like you're in a good position to fill that gap :-)
There's actually work going on to add in a smoother for the edges that the server will publish out automatically in the |
|
@josephduchesne I am actually working on transition curves sharp corners in a route graph. Right now I am still in the preliminary stages of implementing this right now, but we have been able to do this on a relatively large number of nodes on the path. Here is an example image, where Red is the graph edges, and green is the smoothing splines: right now the spline geometry is controlled by the tolerance to the node that we are deviating from. One limitation I do see in the current implementation is that we are not putting limits on kinematics (ie restricting the geometry based on minimum curvature). This is something I'm presently exploring in my own work presently, but I am open to any suggestions as to what the broader |
|
@alexanderjyuen why not do this on all non-colinear edges (of sufficient length that a transition curve can exist)? |
|
@SteveMacenski no reason to not do that, if we have guard rails and warnings informing the user the inability to make a transition curve exist due to very densely packed points, then no reason we can't do this on every edge to edge transition that is not colinear. |
|
@alexanderjyuen @josephduchesne can we take up this conversation in #5082 or on the Nav2 Slack? I'm planning on merge this today so I want this to be captured somewhere else for 'next steps' |
|
Hi @SteveMacenski, I still think there is a problem with how the prune function is considered. This is what happened. The edge 13->14 is being pruned because I think we should consider how far the next node is (in fact once I pass this to the local planner, it fails because the first node is outside the map ). In this case I get the correct path. Let me know what you think, maybe I'm using it wrong, or the nodes should be a specific distance. |
That is expected since we're along the edge and we wouldn't want to the robot to back up a few centimeters just to go back forward. I built that feature to prune edges that the robot is already navigating along. Sometime that can be a little bit, or alot. Maybe you want to increase |
|
Hi, I'm not trying to prevent backing up, i'm trying to make sure the robot has a valid nearby path segment to follow (13→14). especially when it still needs to turn to align itself and start moving along it. In the second image I sent, that is not a valid global plan. |
|
It is not designed to be a complete global path from the robot's start pose to the goal, its the route segment that the robot should follow in order to navigate to the goal along the route. Please look at that parameter I suggested 😄 You can set that to not prune the start when you're in a set proximity to the start node in the route, which would solve your problem. In general, I would tune that value to be something like ~3x your goal tolerance value so that if you're only doing on-graph navigation, you never need to connect with freespace planning along requests. Note that we have examples in the BT package that show that you can easily compute a starting path from the robot's actual start pose to the start of the route both in the behavior tree XML as well as in the C++/python3 API if there's a large discrepancy. This is good when you're navigating on- and off-graph to get back onto the graph when you've left it to obtain some freespace pose. |
* Pre-Commit (#4915)
* Add pre-commit
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Add codespell workflow
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Codespell write_changes=false. As otherwise CI does not fail.
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Configure isort
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* add precommit
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Introducing some issues.
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Revert "Introducing some issues."
This reverts commit 5377b656361ef220dce6d6af36013060798f06de.
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Removing pre-commit workflow.
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Fix formatting error
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Merge remote-tracking branch 'origin/main' into precommit
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Change v31 to v32
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Revert "Merge remote-tracking branch 'origin/main' into precommit"
This reverts commit 8a7ca3983a0b93ef5a94e9517e9598de96be2fe6.
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Rm submodule
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* pre-commit run --all after merge
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
---------
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* Fix path comparison to avoid unnecessary updates (#5009)
Signed-off-by: Tatsuro Sakaguchi <tatsuro.sakaguchi@g.softbank.co.jp>
* nav2_rviz_plugins: Don't use non-existent slot (#5016)
The definition of the slot was removed in commit
e6f500e5 ("nav2_rviz_plugins: Remove slots without
implementation (#4974)", 2025-03-10), because it had no
implementation. But we forgot to remove the reference to this slot,
because the compiler cannot detect it.
We remove the reference now. Without this, rviz shows warnings like:
QObject::connect: No such slot nav2_rviz_plugins::CostmapCostTool::updateAutoDeactivate()
QObject::connect: (sender name: 'Single click')
Signed-off-by: Michal Sojka <michal.sojka@cvut.cz>
* * Parametrize collision checking in nav2_graceful_controller (#5006)
* * Parametrize collision checking in nav2_graceful_controller
Signed-off-by: suchetanrs <suchetan.saravanan@gmail.com>
* * Fix linting errors
Signed-off-by: suchetanrs <suchetan.saravanan@gmail.com>
* * Address PR comments
* Add parameter to dynamic reconfigure
Signed-off-by: suchetanrs <suchetan.saravanan@gmail.com>
* * Add test for the use_collision_detection parameter
Signed-off-by: suchetanrs <suchetan.saravanan@gmail.com>
---------
Signed-off-by: suchetanrs <suchetan.saravanan@gmail.com>
* Update smac planner types (#4927)
* Update smac planner types
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Test ament_mypy
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add packages
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix arg name
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add **
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Specific package
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Declare_parameter_if_not_declared in docking navigator (#5023)
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix naming of launch file
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Fixed naming conventions of launch file
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* navfn : fix performance issue (#4945)
Signed-off-by: Yancey <135342560+Yancey2023@users.noreply.github.com>
* Configured mypy strict for nav2_smac_planner (#5022)
* Configured mypy strict on nav2_smac_planner.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Modify workflow to contain mypy configuration.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added dependency for type support
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Mypy nav2 common (#5031)
* Configured mypy for nav2_common
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_common to the workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Removed all instances of Any.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Fixed unsafe fixes using ruff.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Clear costmap if reset distance exceeds costmap bounds. (#5010)
* Migrate costmap bound check to clearArea for STVL override
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added unbounded map to world function.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added test for mapToWorldNoBounds
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Add near collision cost and warnings for misaligned parameter settings in MPPI critics (#4996)
* Add warning when settings not aligned; Add tunable option for near collision
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Linting
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add more information for warning
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add test for coverage
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Throw controller exception instead of invalid argument
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
---------
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Added pre-commit with ament ignores to the workflow. (#5029)
* Added pre-commit with ament ignores to the workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Removed codespell from workflow and enabled write changes in pre-commit.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Update pull request template with a testing description section.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* feat(nav2_rotation_shim_controller): add use_path_orientations (#5034)
* feat(nav2_rotation_shim_controller): add use_path_orientations
Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com>
* Update nav2_rotation_shim_controller/src/nav2_rotation_shim_controller.cpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
---------
Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Mypy nav2 bringup (#5040)
* Configured nav2_bringup to be compatible with mypy.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_bringup to the linting workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Add service introspection (#4955)
* Add service introspection for client and server side, more tests to go
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add test for service server, fix repeat declaration
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Fix cpplint
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add test for coverage
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Declare and set the parameter in service client and server class
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add typedef; Fix costmap cost tool and bt service
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Rebase; Add tests for coverage
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Fix costmap cost tool; Typedef
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Cleanup
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add spin thread
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add spin
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Change spin thread to internal executor
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Use rclcpp spin when no internal executor
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Update nav2_util/include/nav2_util/service_client.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_util/include/nav2_util/service_client.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_util/include/nav2_util/service_client.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_util/include/nav2_util/service_client.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Refactor
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Update nav2_util/include/nav2_util/service_client.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
---------
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Mypy nav2_collision_monitor (#5043)
* Configured nav2_collision_monitor to use mypy strict.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_collision_monitor to the workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Mypy nav2 costmap 2d (#5044)
* Configured mypy to run on the costmap_2d package.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added mypy_nav2_costmap_2d to the workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Halt recovery action when main action succeeds to reset status (#5027)
* Halt recovery action when main action succeeds to reset status
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_behavior_tree/plugins/control/recovery_node.cpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
---------
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Mypy opennav_docking (#5047)
* Define attributes for nav2_msgs.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Configured opennav_docking to use strict mypy.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added opennav_docking to the mypy linting workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Remove unused code in BT utils (#5048)
* Clean set port
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Remove set
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
---------
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Mypy nav2 lifecycle manager (#5051)
* Configured nav2_lifecycle_manager to be compatible with mypy
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_lifecycle_manager to the workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* fix initializing in drive on heading action node (#5053)
Signed-off-by: Johannes Plapp <johannes.plapp@logivations.com>
* Mypy nav2 loopback sim (#5052)
* Configured nav2_loopback_sim to be compatible with mypy.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_loopback_sim to the workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Separated packages from list for mypy workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Fix mppi bidirectional settings (#4954)
* Add constraint; fix settings
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add lower and upper bound
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Update tests
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Update nav2_mppi_controller/include/nav2_mppi_controller/motion_models.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_mppi_controller/include/nav2_mppi_controller/motion_models.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_mppi_controller/include/nav2_mppi_controller/motion_models.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_mppi_controller/include/nav2_mppi_controller/motion_models.hpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
---------
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Mypy nav2 map server (#5058)
* Configured nav2_map_server to be mypy compliant.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_map_server to the mypy workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Publishing a full time-series MPPI trajectory if desirable (#5057)
* Publishing a full MPPI trajectory if desirable
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* only create publisher when needed
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adjust topics
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Moving for lint
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* updating topics in tests
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
---------
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Add double spin_some in some BT nodes (#5055)
* Add a double spin
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Add comment
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Move spin to constructor
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
---------
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Remove duplicate test (#5062)
There remained a duplicate test of test_system_launch after Groot
monitoring was removed
Signed-off-by: Rasmus Larsson <rasmus.larsson@accenture.com>
* Remove docking absolute topic namespaces (#5068)
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Mypy nav2 simple commander (#5059)
* Added most nav2_simple_commander files that can be trivially converted to be mypy compatible.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Modified edge cases and types for robot_navigator to pass mypy checks.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_simple_commander to the linting workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added logs and ignored type errors due to spins w/o timeout.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Make NavigateThroughPoses navigator report waypoint statuses information. (fix #4846) (#4994)
* Add WaypointStatus message type & Remove MissedWaypoint message type
Signed-off-by: zz990099 <771647586@qq.com>
* Add waypoint_statuses records in RemoveInCollisionGoals/RemovePassedGoals actions
Signed-off-by: zz990099 <771647586@qq.com>
* Add validation tests
Signed-off-by: zz990099 <771647586@qq.com>
* Make NavigateThroughPoses navigator report waypoint statuses information
Signed-off-by: zz990099 <771647586@qq.com>
* Make WaypointFollower use WaypointStatus message type in action result
Signed-off-by: zz990099 <771647586@qq.com>
* Split MISSED status into SKIPPED & FAILED
Signed-off-by: zz990099 <771647586@qq.com>
* fix edge case handle in RemoveInCollision/RemovePassed BT actions
Signed-off-by: zz990099 <771647586@qq.com>
* Add validation test cases for RemoveInCollision&RemovePassed BT actions
Signed-off-by: zz990099 <771647586@qq.com>
* Update RemovePassedGoals/RemoveInCollisionGoals node in Groot XML
Signed-off-by: zz990099 <771647586@qq.com>
---------
Signed-off-by: zz990099 <771647586@qq.com>
* Enable Groot2 monitoring (#5065)
* Revert removing live groot monitoring from Nav2 (#2696)
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Update to Groot2
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Added JSON conversions
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix rebase
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Update to nav_msgs::Goals
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Added nav_msgs to json utils
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Add register to types
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix null-dereference
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Added Json test
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix some tests
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix flake
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Update package dependency
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Minor fixes
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix test
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Rename groot_publisher_port parameter to groot_server_port
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Minor fix in tst
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Added JSON for waypoint_status
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
---------
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix incorrect world <-> map coordinates conversions (#5049)
* Fix incorrect world <-> map coordinates conversions
The conversion between world and map continuous (!) coordinates do not
require a +/-0.5. This offset is only required when converting discrete
map cell indexes to the coordinates of its center.
Signed-off-by: Dylan De Coeyer <dylan.decoeyer@quimesis.be>
* nav2_smac_planner: fix smoother test when path is in collision
The added pose was indeed invalid, but the it was ignored by the
smoother, since considered as a cusp.
Instead, let's make the end of the plan invalid as it won't be ignored.
Also, let's duplicate the last pose to make the orientation estimation
fail, rather than adding a new arbitrary pose.
Signed-off-by: Dylan De Coeyer <dylan.decoeyer@quimesis.be>
---------
Signed-off-by: Dylan De Coeyer <dylan.decoeyer@quimesis.be>
* [AMCL] 50% initialisation (and reset) speed improvement (#4941)
* index lookup and comparator optimisation
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* lint
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
---------
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
* Add note to Asynchronous nodes (#5035)
* Add warning to some of the nodes
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
* remove unused includes
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
* Add warning to remaining nodes using isStatusActive to initialize
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
* Change to note & update phrsing
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
* replace reset by re-initialize
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
---------
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
* [AMCL] Rebuild cspace map only when needed (#5076)
* for LikelihoodFieldModel
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* for LikelihoodFieldModelProb
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* typo
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* init max_occ_dist in map.c and remove unnecessary condition
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
---------
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
* Consistency in Groot 2 (#5078)
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Remove duplicate code (#5080)
* Remove duplicate code
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add twist validation for controller server
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
---------
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Added waypointstatus to bt_utils (#5077)
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Lock costmap in getCostsCallback (#5075)
* Add IsStoppedBTNode
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* add topic name + reformat
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* fix comment
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* fix abs
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* remove log
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* add getter functions for raw twist
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* remove unused code
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* use odomsmoother
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* fix formatting
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* update groot
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* Add test
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* reset at success
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* FIX velocity_threshold_
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* Fix stopped Node
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* Add tests to odometry_utils
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* fix linting
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* lock costmap
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* improvement
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* remove spacing
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* remove unlock
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
---------
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* Mypy nav2 system tests (#5083)
* Configured nodes of nav2_system_tests to be mypy compliant.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Configured launch files of nav2_system_tests to be mypy compliant.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added nav2_system_tests to the linting workflow.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Configure the entire nav2 stack with mypy (#5084)
* Configured tools to be mypy compliant.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added mypy as a pre-commit hook.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Simplified workflow by including all packages with mypy.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Dynamic param patterns (#4971)
* redesign dynamic param patterns
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* change cache version
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* check that parameter of type double are >=0.0
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
---------
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
* [nav2_behavior_tree] Add force_use_current_pose to ComputePathToPoseAction (#4925)
* Add force_use_current_pose
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* xml update
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* rename to use_start
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* lint
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* descriptions
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* simplify logic
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
---------
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
* [CostmapTopicCollisionChecker] Alternative constructor with footprint string (#4926)
* [CostmapTopicCollisionChecker] Alternative constructor with footprint
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* raw pointer
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* suggestions from review
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
---------
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
* Merged Fix navfn_planner from humble PR #5087 (#5092)
* merged changes from humble for goal.header fix
* reverted back, error in merge
* ported goal.header fix in navfn_planner.cpp from humble
* reverted to navfn_planner.cpp to origin/main
* merged navfn_planner.cpp from humble
* fixed the merge
* Docking backwards as plugin param (#5079)
* Replace dock_backwards_ param with dock plugin function
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Deprecated dock_backwards warning
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Convert dockDirection from bool to enum
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Minor fixes
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Improve deprecated param handling
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Set default to forward
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Added tests
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Update nav2_docking/README.md
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Upper and others
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Revert declare_parameters_from_overrides
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Added throw on configure plugin
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Remove node_utils
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
---------
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Update map_io library to use Eigen method for faster map loading (#5071)
* Update map_io library to use opencv method for faster map loading
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Update pre-commit config changes
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Use Eigen approach instead of OpenCV
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Update pre-commit changes
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Update include header include order
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Remove intermediary alpha matrix
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Add comments for the code understanding
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Fix else braces rule issue
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Create and use alpha_matrix when applying mask
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Update pre-commit changes
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Take flip part out of if-else
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Update pre-commit changes
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
---------
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
* Fix CI builds (#5104)
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Increase docking coverage && fix backward docking (#5097)
* Add dock_database tests
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Add utils test
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Improve filter tests
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Added simple charging tests
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Improve comments
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Fix backward and redo main test
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Change test period to reduce test time
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Revert "Change test period to reduce test time"
This reverts commit ef1555ec43cb4849fd658c32377189cf414ff9b7.
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Delete print pose
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
---------
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Initialize dock backwards (#5114)
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Precompute yaw trigonometric values in smac planner (#5109)
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Nav2 Route Server (#5056)
* skeleton of main server and visualization tools
* adding complete Kd-tree search for initial and goal node iDs for search
* initial planner complete
* added path converter
* fix conversion util
* adding change graph service
* added edge scoring to the search + pluginlib definitions + a plugin example instance
* moved to src directory
* linting
* contextual error codes + default bringup
* adding rviz default views of rgaph
* adding missing exception file
* fix segfault that was previously optimized out
* whoops, removing duplicate plugin registration
* remove nanoflann TODO
* adding 2 more edge plugins, use of closed edges in the API design, and added service to modify a set of closed edges being tracked
* fix indexing bug for certain request types
* adding costmap scoring route plugin
* readme todo list updates
* readme details
* adding unit test coverage
* add dynamic cost adjustment by application systems
* adding in operations API
* minor fixes
* add compute and track route action def
* initial prototype compiling and basic interface working for tracking action
* updates to TODO list
* state management
* remove divide by zero potential error
* added in working mostly demog
* adding rerouting service and a bunch of new tests for operations
* adding new trigger event plugin + base class for service calls + test coverage to complete operations manager
* conventions
* adding initial (maybe working?) collision checker + added blocked ID propogation from operations to allow for rerouting with info from operations
* adding in 3 new algorithms: Time Scorer, Time Marker, and Semantic Scorer
* adding complete unit testing for collision monitor
* adding tests for the planner on a fully connected 4x4 graph
* adding rereouting with starting point to use for the initial condition when along route
* sharing common shared action server code in main server
* refactor, added goal intent extractor, updated necessary tests
* updating todo notes
* adding tests and functionoing goal intent extractor and pruning cost updates
* a little cleanup
* adding readme
* completing unit tests
* large reorg of information around the rerouting state information and output formats for practical use
* Nav2 route server parser (#3398)
* aws graph working
* graph parser first stage
* naming cleanup
* remove
* update graph file
* added fileExists to api
* moved filepath param
* vect to string
* parser cleanup
* debug log
* added tests for geojson graph parser
* added logging to parser
* cleanup
* catch exceptions in route service
* code review
* undo cmake
* added graph loader test
* undo cmake
* code review
* frame convesion support
* comments
* fix
* Parse edge and node metadata
* parse operations
* completed metadata parsing
* added recursion for parser
* code review
* undo cmake
* support vectors
* refactor tests
* fix
* general cleanup
* code review
* added timestamp
---------
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* adding unit tests for complex handling of reentrant requests
* adding demos for python3 API
* adding conditions if graph is empty in routing request
* working MVP tracking demos working
* adding integration testing expanded TODO list before beta testers
* Example graph (#3438)
* added simple graph
* added metadata and operations to graph
* update
* add space
* added test for sample_graph
* added to readme
* testing system-wise, mostly working
* update remaining TODO list
* updates for pruning starting in rerouting
* adding a full roster of default plugins
* complete tested feature set
* adding configuration guide to readme
* adding plugins info
* testing collapse
* smaller titles
* adding becnhmarking script
* adding metrics to readme
* adding image for architecture
* resize
* resize
* adding design info
* new image
* turtlebot3 world graph (#3472)
* turtlebot3 world graph
* remove line
* add line back
* scripts for route (#3490)
* tmp push for moving computers
* Nav2 route server goal orientation scorer (#4866)
* added goal pose and bool to check for last edge for all scorers
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added goal_orientation scorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added test for GoalOrientationScorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed goal pose to a const ref, and moved score to end as implicit return
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed goal arguments to const ref
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* using const ref for goal pose, rearranged total_score to match header
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* linting on goal_orientation_scorer.hpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* using M_PI as default threshold, fixed angle wrapping by using angles library, no longer modifying cost
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed arguments to use const refs, changed argument order in score function to matach header
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed calling of score to match argument sequence, changed GoalOrientaitonScorer to test the opposite direction and check the return value
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* switched cost edge pairs to imply return of cost, default orientation as M_PI / 2.0
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
---------
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* minor updates
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* fix a few bugs, clarify a few things
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* more validation and inline comments to help readers understand complex interactions
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* CI turning over
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding error_msg
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* updated cmake style to be in line with repo
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Adding afew mores features from TODO list
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Nav2 route server start pose orientation scorer (#4950)
* adding flag to identify start node, passing tf_buffer to edge scorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* passing tf to route planner
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added null buffer to tests
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added null buffer to planner configure in performance bench marking test
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed arguments of all old edge scorers to also take tf_buffer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed configure to take tf_buffer, added bool to identify start_edge in score method for all existing edge scorers
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added start_pose_orientation_scorer to CMake
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added StartPoseOrientationScorer as and edge scroer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added tf_buffer to constructor, added start edge bool on score method, added tf_buffer as a protected variable
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added tf_buffer to configure method, added start_id_ member variable, added isStart method to identify initial node for route_planner.hpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* modified all configures to take a tf_buffer, modified all score functions to take a start edge bool, added test for start_pose_orientation_scorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* adding start_pose_orientation_scorer.cpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* edge scorer modified to take in tf_buffer and pass it to scorer plugins, bool for start edge also passed down to plugins
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* removed redundant parameter declarations, changed robot frame to base frame, year bump
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed robot frame to base frame, year bump on copy right
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* removed unnecessary tf_buffer_ from edge_scorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added EdgeType enum class
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* all edge scorer plugins changed to use EdgeType
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* edge_scorer modified to use EdgeType enum class
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* edge_cost_function base class modified to use EdgeType enum class
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* modified tests for new scorer signature
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added method to classify edge type
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* ament_cpplinting
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* linting
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed EdgeType to const ref
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added option to score orientations instead of outright rejecting start poses
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* updated docstrings to have better description for goal pose and start pose orientation goal checker
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* fixed merge conflict in goal_orientation_scorer.hpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* fixed merge conflict in edge_cost_function.hpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* removed TODO from costmap_scorer.cpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added getStart method to goal_intent_extract and start pose argument for findRoute
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added RouteData struct to types.hpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added start_pose to edge scorer hpp and cpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* fixed type getStart return type in goal_intent_extractor.cpp
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added passing of start_pose down to scorer in route_planner
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added start pose to base edge cost function class
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* underscore fix for goal_intent_extractor_
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed signature of all edge cost functions to take start_pose
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* populating RouteData and passing it into findRoute
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* passing route_data down to getTraversalCost
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* plugins modified to take in route_data, tests updated accordingly
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* using route data for goal_orientation_scorer and start_pose_orientation_scorer, modified tests accordingly
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* removed route frame, robot frame, and getRobotPose from start_pose_orientation_scorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* removed used of stat_pose and goal_pose as it is replaced with route data
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added InvalidCriticUse exception to nav2_core, goal_orientation_scorer and start_pose_orientation_scorer throws this exception if route_data.use_poses is false, route_server catches this exception, added exception test in the edge scorer tester
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added INVALID_CRITIC_USE error code in route actions
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added orientation weighting for cost as an option instead of out right rejection
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* updated docstring for goal orientation scorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* renamed Critic to EdgeScorer
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed Critic to EdgeScorer in edge cost functions
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed Critic to EdgeScorer, storing exception message in error msg
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed Critic to EdgeScorer in edge scorer tests
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* changed INVALID_CRITIC_USE to IVALID_EDGE_SCORER_US in actions
* changed RouteData and route_data to RouteRequest and route_request respectively, added doxygen for RouteRequest struct
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* added doxygen for EdgeType
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
---------
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
* updates
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* better handle the route situation in the simple commander API
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* completed TB4 migration
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* route updates
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* updating radme
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* one last comment for the day
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding in BT ndoes, tests, and graphs for bringup
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* updating error code locations
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* test for route planner complete
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update to use service server from nav2_utils for service introspection
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* fix small error
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding in additional smoke tests, prototype working of tracking test to be continued
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* updates
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* completed system tests
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* reenable collision checking
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* remove unnecssary logging
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* linting
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update package.xml
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* closing test gap
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* a few more lines
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* changing permissions
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* fix system test
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding in additional coverage
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* finalized test coverage
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding file
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* simple commander demo working
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* python happiness
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* precommit spelling happy
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* wtf pprecommit, why didn't you mention this before
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* spelling
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_route/README.md
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update route_planner.cpp
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* fix mistake in merge conflict resolution
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* type check fix
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* lint
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* linting
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* more design ideas
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Configuring nav2_route_server branch to be mypy compliant (#5081)
* Added definitions for nav2_msgs actions and messages.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Enabled example_route to be compatible with mypy.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added return definition for route_example_launch.py.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Ported robot_navigator.py to be compliant with mypy.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Demo 1 completed
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* second demo completed
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* final linting
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding route server for test to pass
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding smoother server
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Configured nav2_system_tests to be mypy compliant. (#5085)
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Route Tool Rviz Panel (#4775)
* added route tool skeleton code and gui
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* rviz2 panel can load route graph
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* can add nodes using route tool
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added logic for creating edges
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* graph nodes can be edited, existing edges will still connect if a node is moved
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* can edit edges
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* can delete nodes and edges
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* route graphs can be saved
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed bug for loading in route graphs
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added dynamic text to UI, created launch file and rviz configuration
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed bug for deleting nodes
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* actually fixed node removal bug
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* publishing clicked point populates x and y fields
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* removed debugging log statements
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added check to make sure node/edges exist before editing
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* bug fix
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* migrated route tool to rviz plugin
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* minor refactoring
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added metadata and operations to graph saver so nothing should be erased
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* edited set route service to clear current route before setting new
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* Update README.md
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* addressed comments
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* documentation cleanup
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* changed copyright
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* addressed comments
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* moved copyright due to compiler error
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* revert removal of files
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added gen ai comment
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed rebasing issue
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fix linting errors
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added export for graph saver dependencies
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added ui file to library
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added nav2_route_core to link libaries
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed cmake error
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed build issues
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* uncrustified
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* cpplint
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added unit tests and fixed bugs
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* increased test coverage
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed linter errors
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed pre-commit errors
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed formatting error
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* double -> single quotes
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* added test for using default filepath
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* fixed license
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* addressed comments
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* Update nav2_route/include/nav2_route/graph_saver.hpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
* linter fix
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
---------
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
Co-authored-by: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* fixing linting
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Updating readme table
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* lint
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding multifloor
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding BFS goal intent search
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* fix bug
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* adding unit tests for goal intent search
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* fixing collision check
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update nav2_simple_commander/nav2_simple_commander/robot_navigator.py
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
---------
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: alexanderjyuen <103065090+alexanderjyuen@users.noreply.github.com>
Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
Co-authored-by: John Chrosniak <chrosniakj@gmail.com>
Co-authored-by: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com>
* Feat/smac planner include orientation flexibility (#4127)
* include functionality to allow multiple goal heading for smac planner
Signed-off-by: stevedanomodolor <stevedan.o.omodolor@gmail.com>
* include missing parameter inclusion
Signed-off-by: stevedanomodolor <stevedan.o.omodolor@gmail.com>
* increase test coverage
Signed-off-by: stevedanomodolor <stevedan.o.omodolor@gmail.com>
---------
Signed-off-by: stevedanomodolor <stevedan.o.omodolor@gmail.com>
* Support zero value for std_wz in mppi controller (#5110)
* Support zero value for std_wz in mppi controller
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Update for better readability
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
---------
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Update update_ci_image.yaml to include jazzy build (#5120)
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Update update_ci_image.yaml to add humble
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* message_filters hpp headers have been backported (#5127)
* message_filters hpp headers have been backported
Signed-off-by: Tim Clephas <tim.clephas@nobleo.nl>
* fixup! message_filters hpp headers have been backported
Signed-off-by: Tim Clephas <tim.clephas@nobleo.nl>
---------
Signed-off-by: Tim Clephas <tim.clephas@nobleo.nl>
* Update PULL_REQUEST_TEMPLATE.md
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Bibtex formatting (#5126)
* Align citation text to be within the bullet points.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Align formatting to match bibtex guide.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Add justified spacing for readability.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Make sure fixed curvature lookahead distance doesn't overshoot distance to cusp (#5134)
Related issue: https://github.com/ros-navigation/navigation2/issues/5098
* removing the start navigation message in the paused state from rviz buttons (#5137)
Signed-off-by: Pradheep <padhupradheep@gmail.com>
* Added keepout filter for depot and warehouse maps (#5125)
* Added keepout region to warehouse map.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Support keepout_map as a launch argument.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added a dictionary to switch between tb4 maps.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added dedicated launch file for map modifiers.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added support for depot keepout filter.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Updated keepout masks for depot and warehouse.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Renamed keepout filter launch arguments to keepout zones.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Renamed keepout map launch argument to keepout mask
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Renamed map_modifier.launch.py to keepout_zone_launch.py.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Preserve duplication of nodes for keepout test.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Removed padding from keepout zones from depot map.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added keepout zone at the centre of the warehouse map.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Added utility script to handle namespaces for keepout_filter.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Used utility function to simplify namespace calls.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Moved joinWithParentNamespace to the Layer object.
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
---------
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
* Fix lattice backward 180 deg issue (#5141)
Signed-off-by: selazarev <slazarev8@gmail.com>
* [lifecycle_manager] expose service_timeout (#4838)
* [lifecycle_manager] expose service_timeout
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* restore original change_state, and detect non_default_timeout
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* lint
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* spell
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* collapse change_state and remove non_default_timeout logic
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
* Update nav2_util/src/lifecycle_service_client.cpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Guillaume Doisy <doisyg@users.noreply.github.com>
---------
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: Guillaume Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Update simple_action_server.hpp for description (#5150)
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* reset motion model (#5149)
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
* Show error if inflation radius is smaller than circumscribed radius (#5148)
* Warn if inflation radius is smaller than circumscribed radius
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
* Update nav2_mppi_controller/src/critics/cost_critic.cpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Tony Najjar <t03578624@gmail.com>
* Update nav2_smac_planner/include/nav2_smac_planner/utils.hpp
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Tony Najjar <t03578624@gmail.com>
---------
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Tony Najjar <t03578624@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
---------
Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com>
Signed-off-by: Tatsuro Sakaguchi <tatsuro.sakaguchi@g.softbank.co.jp>
Signed-off-by: Michal Sojka <michal.sojka@cvut.cz>
Signed-off-by: suchetanrs <suchetan.saravanan@gmail.com>
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Yancey <135342560+Yancey2023@users.noreply.github.com>
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Signed-off-by: Johannes Plapp <johannes.plapp@logivations.com>
Signed-off-by: Rasmus Larsson <rasmus.larsson@accenture.com>
Signed-off-by: zz990099 <771647586@qq.com>
Signed-off-by: Dylan De Coeyer <dylan.decoeyer@quimesis.be>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Vignesh T <vignesh.t@kabam.ai>
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
Signed-off-by: John Chrosniak <chrosniakj@gmail.com>
Signed-off-by: stevedanomodolor <stevedan.o.omodolor@gmail.com>
Signed-off-by: Tim Clephas <tim.clephas@nobleo.nl>
Signed-off-by: Pradheep <padhupradheep@gmail.com>
Signed-off-by: selazarev <slazarev8@gmail.com>
Signed-off-by: Guillaume Doisy <doisyg@users.noreply.github.com>
Signed-off-by: Tony Najjar <t03578624@gmail.com>
Co-authored-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com>
Co-authored-by: Tatsuro Sakaguchi <tatsuro.sakaguchi@g.softbank.co.jp>
Co-authored-by: Michal Sojka <michal.sojka@cvut.cz>
Co-authored-by: Michael Carlstrom <rmc@carlstrom.com>
Co-authored-by: Alberto Tudela <ajtudela@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Yancey <135342560+Yancey2023@users.noreply.github.com>
Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
Co-authored-by: mini-1235 <mauricepurnawan@gmail.com>
Co-authored-by: Kemal Bektas <34746077+bektaskemal@users.noreply.github.com>
Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Co-authored-by: Johannes Plapp <johannes.plapp@logivations.com>
Co-authored-by: RasmusLar <101558931+RasmusLar@users.noreply.github.com>
Co-authored-by: zz99 <86543200+zz990099@users.noreply.github.com>
Co-authored-by: DylanDeCoeyer-Quimesis <102609575+DylanDeCoeyer-Quimesis@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Adi Vardi <57910756+adivardi@users.noreply.github.com>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: Sandeep Dutta <quark01@gmail.com>
Co-authored-by: Vignesh T <vignesh.t@kabam.ai>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: alexanderjyuen <103065090+alexanderjyuen@users.noreply.github.com>
Co-authored-by: John Chrosniak <chrosniakj@gmail.com>
Co-authored-by: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com>
Co-authored-by: Stevedan Ogochukwu Omodolor <61468301+stevedanomodolor@users.noreply.github.com>
Co-authored-by: Tim Clephas <tim.clephas@nobleo.nl>
Co-authored-by: moooeeeep <moooeeeep@users.noreply.github.com>
Co-authored-by: Pradheep Krishna <padhupradheep@gmail.com>
Co-authored-by: Semyon <slazarev8@gmail.com>
* skeleton of main server and visualization tools * adding complete Kd-tree search for initial and goal node iDs for search * initial planner complete * added path converter * fix conversion util * adding change graph service * added edge scoring to the search + pluginlib definitions + a plugin example instance * moved to src directory * linting * contextual error codes + default bringup * adding rviz default views of rgaph * adding missing exception file * fix segfault that was previously optimized out * whoops, removing duplicate plugin registration * remove nanoflann TODO * adding 2 more edge plugins, use of closed edges in the API design, and added service to modify a set of closed edges being tracked * fix indexing bug for certain request types * adding costmap scoring route plugin * readme todo list updates * readme details * adding unit test coverage * add dynamic cost adjustment by application systems * adding in operations API * minor fixes * add compute and track route action def * initial prototype compiling and basic interface working for tracking action * updates to TODO list * state management * remove divide by zero potential error * added in working mostly demog * adding rerouting service and a bunch of new tests for operations * adding new trigger event plugin + base class for service calls + test coverage to complete operations manager * conventions * adding initial (maybe working?) collision checker + added blocked ID propogation from operations to allow for rerouting with info from operations * adding in 3 new algorithms: Time Scorer, Time Marker, and Semantic Scorer * adding complete unit testing for collision monitor * adding tests for the planner on a fully connected 4x4 graph * adding rereouting with starting point to use for the initial condition when along route * sharing common shared action server code in main server * refactor, added goal intent extractor, updated necessary tests * updating todo notes * adding tests and functionoing goal intent extractor and pruning cost updates * a little cleanup * adding readme * completing unit tests * large reorg of information around the rerouting state information and output formats for practical use * Nav2 route server parser (ros-navigation#3398) * aws graph working * graph parser first stage * naming cleanup * remove * update graph file * added fileExists to api * moved filepath param * vect to string * parser cleanup * debug log * added tests for geojson graph parser * added logging to parser * cleanup * catch exceptions in route service * code review * undo cmake * added graph loader test * undo cmake * code review * frame convesion support * comments * fix * Parse edge and node metadata * parse operations * completed metadata parsing * added recursion for parser * code review * undo cmake * support vectors * refactor tests * fix * general cleanup * code review * added timestamp --------- Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * adding unit tests for complex handling of reentrant requests * adding demos for python3 API * adding conditions if graph is empty in routing request * working MVP tracking demos working * adding integration testing expanded TODO list before beta testers * Example graph (ros-navigation#3438) * added simple graph * added metadata and operations to graph * update * add space * added test for sample_graph * added to readme * testing system-wise, mostly working * update remaining TODO list * updates for pruning starting in rerouting * adding a full roster of default plugins * complete tested feature set * adding configuration guide to readme * adding plugins info * testing collapse * smaller titles * adding becnhmarking script * adding metrics to readme * adding image for architecture * resize * resize * adding design info * new image * turtlebot3 world graph (ros-navigation#3472) * turtlebot3 world graph * remove line * add line back * scripts for route (ros-navigation#3490) * tmp push for moving computers * Nav2 route server goal orientation scorer (ros-navigation#4866) * added goal pose and bool to check for last edge for all scorers Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added goal_orientation scorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added test for GoalOrientationScorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed goal pose to a const ref, and moved score to end as implicit return Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed goal arguments to const ref Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * using const ref for goal pose, rearranged total_score to match header Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * linting on goal_orientation_scorer.hpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * using M_PI as default threshold, fixed angle wrapping by using angles library, no longer modifying cost Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed arguments to use const refs, changed argument order in score function to matach header Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed calling of score to match argument sequence, changed GoalOrientaitonScorer to test the opposite direction and check the return value Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * switched cost edge pairs to imply return of cost, default orientation as M_PI / 2.0 Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> --------- Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * minor updates Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fix a few bugs, clarify a few things Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * more validation and inline comments to help readers understand complex interactions Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * CI turning over Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding error_msg Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * updated cmake style to be in line with repo Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Adding afew mores features from TODO list Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Nav2 route server start pose orientation scorer (ros-navigation#4950) * adding flag to identify start node, passing tf_buffer to edge scorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * passing tf to route planner Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added null buffer to tests Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added null buffer to planner configure in performance bench marking test Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed arguments of all old edge scorers to also take tf_buffer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed configure to take tf_buffer, added bool to identify start_edge in score method for all existing edge scorers Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added start_pose_orientation_scorer to CMake Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added StartPoseOrientationScorer as and edge scroer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added tf_buffer to constructor, added start edge bool on score method, added tf_buffer as a protected variable Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added tf_buffer to configure method, added start_id_ member variable, added isStart method to identify initial node for route_planner.hpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * modified all configures to take a tf_buffer, modified all score functions to take a start edge bool, added test for start_pose_orientation_scorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * adding start_pose_orientation_scorer.cpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * edge scorer modified to take in tf_buffer and pass it to scorer plugins, bool for start edge also passed down to plugins Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * removed redundant parameter declarations, changed robot frame to base frame, year bump Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed robot frame to base frame, year bump on copy right Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * removed unnecessary tf_buffer_ from edge_scorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added EdgeType enum class Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * all edge scorer plugins changed to use EdgeType Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * edge_scorer modified to use EdgeType enum class Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * edge_cost_function base class modified to use EdgeType enum class Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * modified tests for new scorer signature Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added method to classify edge type Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * ament_cpplinting Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * linting Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed EdgeType to const ref Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added option to score orientations instead of outright rejecting start poses Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * updated docstrings to have better description for goal pose and start pose orientation goal checker Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * fixed merge conflict in goal_orientation_scorer.hpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * fixed merge conflict in edge_cost_function.hpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * removed TODO from costmap_scorer.cpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added getStart method to goal_intent_extract and start pose argument for findRoute Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added RouteData struct to types.hpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added start_pose to edge scorer hpp and cpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * fixed type getStart return type in goal_intent_extractor.cpp Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added passing of start_pose down to scorer in route_planner Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added start pose to base edge cost function class Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * underscore fix for goal_intent_extractor_ Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed signature of all edge cost functions to take start_pose Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * populating RouteData and passing it into findRoute Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * passing route_data down to getTraversalCost Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * plugins modified to take in route_data, tests updated accordingly Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * using route data for goal_orientation_scorer and start_pose_orientation_scorer, modified tests accordingly Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * removed route frame, robot frame, and getRobotPose from start_pose_orientation_scorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * removed used of stat_pose and goal_pose as it is replaced with route data Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added InvalidCriticUse exception to nav2_core, goal_orientation_scorer and start_pose_orientation_scorer throws this exception if route_data.use_poses is false, route_server catches this exception, added exception test in the edge scorer tester Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added INVALID_CRITIC_USE error code in route actions Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added orientation weighting for cost as an option instead of out right rejection Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * updated docstring for goal orientation scorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * renamed Critic to EdgeScorer Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed Critic to EdgeScorer in edge cost functions Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed Critic to EdgeScorer, storing exception message in error msg Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed Critic to EdgeScorer in edge scorer tests Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * changed INVALID_CRITIC_USE to IVALID_EDGE_SCORER_US in actions * changed RouteData and route_data to RouteRequest and route_request respectively, added doxygen for RouteRequest struct Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * added doxygen for EdgeType Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> --------- Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> * updates Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * better handle the route situation in the simple commander API Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * completed TB4 migration Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * route updates Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * updating radme Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * one last comment for the day Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding in BT ndoes, tests, and graphs for bringup Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * updating error code locations Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * test for route planner complete Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update to use service server from nav2_utils for service introspection Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fix small error Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding in additional smoke tests, prototype working of tracking test to be continued Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * updates Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * completed system tests Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * reenable collision checking Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * remove unnecssary logging Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * linting Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update package.xml Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * closing test gap Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * a few more lines Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * changing permissions Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fix system test Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding in additional coverage Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * finalized test coverage Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding file Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * simple commander demo working Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * python happiness Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * precommit spelling happy Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * wtf pprecommit, why didn't you mention this before Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * spelling Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_route/README.md Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update route_planner.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fix mistake in merge conflict resolution Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * type check fix Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * lint Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * linting Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * more design ideas Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Configuring nav2_route_server branch to be mypy compliant (ros-navigation#5081) * Added definitions for nav2_msgs actions and messages. Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Enabled example_route to be compatible with mypy. Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Added return definition for route_example_launch.py. Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Ported robot_navigator.py to be compliant with mypy. Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> --------- Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Demo 1 completed Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * second demo completed Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * final linting Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding route server for test to pass Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding smoother server Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Configured nav2_system_tests to be mypy compliant. (ros-navigation#5085) Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Route Tool Rviz Panel (ros-navigation#4775) * added route tool skeleton code and gui Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * rviz2 panel can load route graph Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * can add nodes using route tool Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added logic for creating edges Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * graph nodes can be edited, existing edges will still connect if a node is moved Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * can edit edges Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * can delete nodes and edges Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * route graphs can be saved Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed bug for loading in route graphs Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added dynamic text to UI, created launch file and rviz configuration Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed bug for deleting nodes Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * actually fixed node removal bug Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * publishing clicked point populates x and y fields Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * removed debugging log statements Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added check to make sure node/edges exist before editing Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * bug fix Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * migrated route tool to rviz plugin Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * minor refactoring Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added metadata and operations to graph saver so nothing should be erased Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * edited set route service to clear current route before setting new Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * Update README.md Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * addressed comments Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * documentation cleanup Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * changed copyright Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * addressed comments Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * moved copyright due to compiler error Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * revert removal of files Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added gen ai comment Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed rebasing issue Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fix linting errors Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added export for graph saver dependencies Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added ui file to library Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added nav2_route_core to link libaries Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed cmake error Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed build issues Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * uncrustified Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * cpplint Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added unit tests and fixed bugs Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * increased test coverage Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed linter errors Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed pre-commit errors Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed formatting error Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * double -> single quotes Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * added test for using default filepath Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * fixed license Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * addressed comments Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * Update nav2_route/include/nav2_route/graph_saver.hpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * Update nav2_route/src/plugins/graph_file_savers/geojson_graph_file_saver.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: John Chrosniak <chrosniakj@gmail.com> * linter fix Signed-off-by: John Chrosniak <chrosniakj@gmail.com> --------- Signed-off-by: John Chrosniak <chrosniakj@gmail.com> Co-authored-by: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * fixing linting Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Updating readme table Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * lint Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding multifloor Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding BFS goal intent search Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fix bug Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * adding unit tests for goal intent search Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fixing collision check Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_simple_commander/nav2_simple_commander/robot_navigator.py Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Alexander Yuen <alex@polymathrobotics.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Signed-off-by: John Chrosniak <chrosniakj@gmail.com> Co-authored-by: Joshua Wallace <josho.wallace@gmail.com> Co-authored-by: alexanderjyuen <103065090+alexanderjyuen@users.noreply.github.com> Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Co-authored-by: John Chrosniak <chrosniakj@gmail.com> Co-authored-by: Saikrishna Bairamoni <84093461+SaikrishnaBairamoni@users.noreply.github.com> Signed-off-by: Sakshay Mahna <sakshum19@gmail.com>






Closing #2229 and introducing route navigation graph planning to Nav2
TODOs