-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Add nav2_gps_waypoint_follower #2111
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
Changes from all commits
5f33ac5
277c1e1
c6ee437
7b6f8cf
ac94d2d
cd9a287
9c0e408
f94e3b3
e4fe184
c2f4d95
98804f1
e95f55a
960bb13
623c6a6
ef57df0
063b8e7
e544fde
84c7ef0
d2c4127
aee13ca
4f83167
6e322ea
81c7c64
7c69520
7889ae3
c28b93e
c6613a8
0d0d59c
d7e2ad4
d6527d2
f99ebff
e0a3aa6
5fcfb83
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| #goal definition | ||
| nav2_msgs/OrientedNavSatFix[] gps_poses | ||
| --- | ||
| #result definition | ||
| int32[] missed_waypoints | ||
| --- | ||
| #feedback | ||
| uint32 current_waypoint |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| sensor_msgs/NavSatFix position | ||
| geometry_msgs/Quaternion orientation |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -25,3 +25,22 @@ In the first, the ``nav2_waypoint_follower`` is fully sufficient to create a pro | |
| In the second, the ``nav2_waypoint_follower`` is a nice sample application / proof of concept, but you really need your waypoint following / autonomy system on the robot to carry more weight in making a robust solution. In this case, you should use the ``nav2_behavior_tree`` package to create a custom application-level behavior tree using navigation to complete the task. This can include subtrees like checking for the charge status mid-task for returning to dock or handling more than 1 unit of work in a more complex task. Soon, there will be a ``nav2_bt_waypoint_follower`` (name subject to adjustment) that will allow you to create this application more easily. In this school of thought, the waypoint following application is more closely tied to the system autonomy, or in many cases, is the system autonomy. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We also need any new parameters or actions exposed by the waypoint follower added to the navigation.ros.org website configuration docs. Also adding a node in the migration guide that WP follower now does GPS in the Foxy migration guide. The WP follower configuration page should also add a paragraph on top with the basic package description mentioning GPS waypoint following now. That's part of another documentation PR, just FYI. You don't need to do this right now, we can wait until this is ready.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, lets make this PR good enough to merge then |
||
|
|
||
| Neither is better than the other, it highly depends on the tasks your robot(s) are completing, in what type of environment, and with what cloud resources available. Often this distinction is very clear for a given business case. | ||
|
|
||
| ## Nav2 GPS Waypoint Follower | ||
|
jediofgever marked this conversation as resolved.
|
||
|
|
||
| `nav2_waypoint_follower` provides an action server named `FollowGPSWaypoints` which accepts GPS waypoint following requests by using tools provided by `robot_localization` and `nav2_waypoint_follower` itself. | ||
|
|
||
| `robot_localization`'s `navsat_transform_node` provides a service `fromLL`, which is used to convert pure GPS coordinates(longitude, latitude, alitude) | ||
| to cartesian coordinates in map frame(x,y), then the existent action named `FollowWaypoints` from `nav2_waypoint_follower` is used to get robot go through each converted waypoints. | ||
| The action msg definition for GPS waypoint following can be found [here](https://github.com/ros-planning/navigation2/blob/main/nav2_msgs/action/FollowGPSWaypoints.action). | ||
|
|
||
| In a common use case, an client node can read a set of GPS waypoints from a YAML file an create a client to action server named as `FollowGPSWaypoints`. | ||
| For instance, | ||
|
|
||
| ```cpp | ||
| using ClientT = nav2_msgs::action::FollowGPSWaypoints; | ||
| rclcpp_action::Client<ClientT>::SharedPtr gps_waypoint_follower_action_client_; | ||
| gps_waypoint_follower_action_client_ = rclcpp_action::create_client<ClientT>(this, "follow_gps_waypoints"); | ||
| ``` | ||
|
|
||
| All other functionalities provided by `nav2_waypoint_follower` such as WaypointTaskExecutors are usable and can be configured in WaypointTaskExecutor. | ||
Uh oh!
There was an error while loading. Please reload this page.