Skip to content

Commit a73d117

Browse files
committed
Merge branch 'master' of github.com:ros-navigation/docs.nav2.org
2 parents e7cb109 + 5331c6e commit a73d117

6 files changed

Lines changed: 255 additions & 51 deletions

File tree

configuration/packages/configuring-bt-navigator.rst

Lines changed: 55 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -180,50 +180,6 @@ Parameters
180180
Description
181181
Topic on which odometry is published
182182

183-
:goal_blackboard_id:
184-
185-
====== =======
186-
Type Default
187-
------ -------
188-
string "goal"
189-
====== =======
190-
191-
Description
192-
Blackboard variable to use to supply the goal to the behavior tree for ``NavigateToPose``. Should match ports of BT XML file.
193-
194-
:path_blackboard_id:
195-
196-
====== =======
197-
Type Default
198-
------ -------
199-
string "path"
200-
====== =======
201-
202-
Description
203-
Blackboard variable to get the path from the behavior tree for ``NavigateThroughPoses`` feedback. Should match port names of BT XML file.
204-
205-
:goals_blackboard_id:
206-
207-
====== =======
208-
Type Default
209-
------ -------
210-
string "goals"
211-
====== =======
212-
213-
Description
214-
Blackboard variable to use to supply the goals to the behavior tree for ``NavigateThroughPoses``. Should match ports of BT XML file.
215-
216-
:waypoint_statuses_blackboard_id:
217-
218-
====== ===================
219-
Type Default
220-
------ -------------------
221-
string "waypoint_statuses"
222-
====== ===================
223-
224-
Description
225-
Blackboard variable to get the statuses of waypoints from the behavior tree for ``NavigateThroughPoses`` feedback/result. Should match ports of BT XML file.
226-
227183
:error_code_name_prefixes:
228184

229185
============== ===========================
@@ -284,6 +240,28 @@ Parameters
284240
NavigateToPose Parameters
285241
*************************
286242

243+
:``<navigate_to_pose_name>``.goal_blackboard_id:
244+
245+
====== =======
246+
Type Default
247+
------ -------
248+
string "goal"
249+
====== =======
250+
251+
Description
252+
Blackboard variable to use to supply the goal to the behavior tree for ``NavigateToPose``. Should match ports of BT XML file.
253+
254+
:``<navigate_to_pose_name>``.path_blackboard_id:
255+
256+
====== =======
257+
Type Default
258+
------ -------
259+
string "path"
260+
====== =======
261+
262+
Description
263+
Blackboard variable to get the path from the behavior tree for ``NavigateToPose`` feedback. Should match port names of BT XML file.
264+
287265
:``<navigate_to_pose_name>``.enable_groot_monitoring:
288266

289267
============== =======
@@ -309,6 +287,39 @@ NavigateToPose Parameters
309287
NavigateThroughPoses Parameters
310288
*******************************
311289

290+
:``<navigate_through_poses>``.goals_blackboard_id:
291+
292+
====== =======
293+
Type Default
294+
------ -------
295+
string "goals"
296+
====== =======
297+
298+
Description
299+
Blackboard variable to use to supply the goals to the behavior tree for ``NavigateThroughPoses``. Should match ports of BT XML file.
300+
301+
:``<navigate_through_poses>``.path_blackboard_id:
302+
303+
====== =======
304+
Type Default
305+
------ -------
306+
string "path"
307+
====== =======
308+
309+
Description
310+
Blackboard variable to get the path from the behavior tree for ``NavigateThroughPoses`` feedback. Should match port names of BT XML file.
311+
312+
:``<navigate_through_poses>``.waypoint_statuses_blackboard_id:
313+
314+
====== ===================
315+
Type Default
316+
------ -------------------
317+
string "waypoint_statuses"
318+
====== ===================
319+
320+
Description
321+
Blackboard variable to get the statuses of waypoints from the behavior tree for ``NavigateThroughPoses`` feedback/result. Should match ports of BT XML file.
322+
312323
:``<navigate_through_poses>``.enable_groot_monitoring:
313324

314325
============== =======

configuration/packages/configuring-regulated-pp.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ Regulated Pure Pursuit Parameters
361361
============== =============================
362362
Type Default
363363
-------------- -----------------------------
364-
double 2.0
364+
double -1.0
365365
============== =============================
366366

367367
Description
@@ -417,5 +417,5 @@ Example
417417
rotate_to_heading_min_angle: 0.785
418418
max_angular_accel: 3.2
419419
max_robot_pose_search_dist: 10.0
420-
min_distance_to_obstacle: 2.0
420+
min_distance_to_obstacle: 0.0
421421
stateful: true

configuration/packages/configuring-savitzky-golay-smoother.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,28 @@ This algorithm is deterministic and low-parameter. In the below image, some odd
1919
Savitzky-Golay Smoother Parameters
2020
**********************************
2121

22+
:window_size:
23+
24+
============== ===========================
25+
Type Default
26+
-------------- ---------------------------
27+
int 7
28+
============== ===========================
29+
30+
Description
31+
Size of the smoothing window. Must be an odd integer, with a minimum value of 3
32+
33+
:poly_order:
34+
35+
============== ===========================
36+
Type Default
37+
-------------- ---------------------------
38+
int 3
39+
============== ===========================
40+
41+
Description
42+
Order of the polynomial used to fit the samples in each smoothing window
43+
2244
:do_refinement:
2345

2446
============== ===========================
@@ -65,6 +87,8 @@ Example
6587
smoother_plugins: ["savitzky_golay_smoother"]
6688
savitzky_golay_smoother:
6789
plugin: "nav2_smoother::SavitzkyGolaySmoother"
90+
window_size: 7
91+
poly_order: 3
6892
do_refinement: True
6993
refinement_num: 2
7094
enforce_path_inversion: True
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
.. _distribution_sync_docs:
2+
3+
ROS Distribution Sync Process
4+
#############################
5+
6+
This is the instructions for updating a Nav2 version in a ROS distribution sync.
7+
We do this by bulk cherry picking commits from the ``main`` branch after they've had time to soak and apply them to the branch we looking to sync with the newest features.
8+
9+
0. Initial Setup
10+
----------------
11+
12+
First we need to create a temporary workspace to perform the sync.
13+
Typically, this is done in the ``/tmp`` directory so that it is cleaned up after a reboot.
14+
15+
.. code-block:: bash
16+
17+
mkdir -p /tmp/sync_ws/src
18+
cd /tmp/sync_ws/src
19+
git clone https://github.com/ros-navigation/navigation2.git -b <distro>
20+
cd navigation2
21+
git checkout -b sync_<distro>
22+
23+
Then, we want to get a list of all of the commits we may be interested in backporting.
24+
This can be found either in the git logs of the ``main`` branch or using the GitHub UX at https://github.com/ros-navigation/navigation2/commits/ and select the branch you are interested in.
25+
If using GitHub, open two tabs - one for ``main`` and one for ``<distro>``.
26+
27+
Finally, we need to identify the date of the last sync.
28+
This can be found looking in the commit messages for ``<distro>``'s branch or by looking at the release page for Nav2 and finding the date of the last release for that distribution.
29+
Scroll back in the ``main`` and ``<distro>`` git logs to find the last sync commit to begin.
30+
31+
Once you have a local clone, the git logs, and the date of the last sync, we can begin the process.
32+
33+
1. Backporting Process
34+
----------------------
35+
36+
Starting with the first commit in ``main`` after the last sync date, we will look at each commit individually.
37+
Each commit should be evaluated for the following criteria:
38+
39+
- Cannot change default out-of-the-box behavior or existing configured robot behavior
40+
- Cannot change major end-user ABI/API
41+
- Cannot change message, action, or service definitions
42+
- Cannot include risky changes that need more time to soak, such as for complete package rewrites or experimental features
43+
44+
If it does not do any of the above, it is a candidate for backporting.
45+
It can be backported via the following command in your local branch:
46+
47+
.. code-block:: bash
48+
49+
git cherry-pick <commit_hash>
50+
51+
52+
If this merges without issue, you may proceed.
53+
If not, we either must resolve the conflicts or roll back the commit.
54+
We may need to roll it back if the merge conflict is too complex or it relies on a cascading chain of other commits that could not be included due to their dependency on commits that were unable to be backported.
55+
56+
.. note::
57+
58+
Some commits may already have been backported by Mergify.
59+
Use the git logs for the ``<distro>`` branch to check if the commit has already been backported.
60+
If it has been, it can be skipped.
61+
62+
Once all commits to the present are evaluated, we can proceed to the next step.
63+
64+
2. Testing
65+
----------
66+
67+
Before we can merge our changes, we need to ensure that everything is working correctly.
68+
This involves compiling the code, running any unit tests, and performing functional testing.
69+
Navigate back to the root of the workspace and build the code:
70+
71+
.. code-block:: bash
72+
73+
cd ../../
74+
colcon build
75+
source install/setup.bash
76+
77+
After building, we can run the tests:
78+
79+
.. code-block:: bash
80+
81+
colcon test
82+
83+
84+
If all tests pass, we can launch the Nav2 bringup demos and navigate the TB3 and TB4 robots in both Gazebo and the loopback simulator for 10-15 minutes to validate functional stability of the backport.
85+
86+
3. Open a PR
87+
------------
88+
89+
Once we have validated the changes, we can open a pull request (PR) against the ``<distro>`` branch.
90+
Increment the package.xml versions for all packages using search and replace to increment one minor version (i.e. 1.1.X).
91+
Open a PR with the title ``<Branch> Sync: <Date>`` and include a description of the changes made.
92+
Let CI run and merge once passes for a second independent validation of compilation and testing.
93+
94+
4. Bloom Release
95+
----------------
96+
97+
Once the PR is merged, we can release the changes to the distribution.
98+
Create a release of the same version as the ``package.xml`` files targeting the ``<distro>`` branch.
99+
Then, follow `Steve's Bloom Release Guide <https://gist.github.com/SteveMacenski/1c321d1c9edca096ae4d763d8327c2ee>`_ to perform the bloom release.

maintainer_docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ These are published publicly for visibility and as a resource for the maintainer
1010
:maxdepth: 1
1111

1212
distribution_release.rst
13+
distribution_syncs.rst

migration/Kilted.rst

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,13 @@ Now, it supports future extensions for lifecycle subscriptions or additional wra
197197
Additionally, it supports QoS override using the parameter ``allow_parameter_qos_overrides``.
198198

199199
Removed Parameter action_server_result_timeout
200-
**********************************************
200+
----------------------------------------------
201201

202202
Removed the parameter ``action_server_result_timeout`` from all action servers after resolution within ``rcl`` and ``rclcpp`` to address early goal removal.
203203
This is not longer required to be set.
204204

205205
Added Corner Smoothing functionality to route_server
206-
****************************************************
206+
----------------------------------------------------
207207

208208
In `PR #5226 <https://github.com/ros-navigation/navigation2/pull/5226>`_ the ability to stitch two successive edges in ``route_server`` with a smooth circular arc has been added. Below is an example of two successive edges forming a corner being smoothed with a radius of one. The red lines are the edges of the route graph and the green line is the resultant path that can be used by a local planner.
209209

@@ -212,22 +212,22 @@ In `PR #5226 <https://github.com/ros-navigation/navigation2/pull/5226>`_ the abi
212212
New parameters include ``smooth_corners`` which enable or disable corner smoothing and ``smoothing_radius`` which specifies the radius of the corner to fit to a corner. The tangents of the starting and ending points of the circular arc will match the tangent of the edges that form the corner. In the event that two edges are basically straight, no corner arc is added and regular linear interpolation is done. In addition to that, if the corner arc requires a starting point and ending point that's longer than the edge lengths, then it will not add a corner arc.
213213

214214
Added NonblockingSequence Control Node
215-
**************************************
215+
--------------------------------------
216216

217217
In `PR #5325 <https://github.com/ros-navigation/navigation2/pull/5325>`_ a new Nav2 specific behavior tree control node has been added. The new behavior tree control node, ``NonblockingSequence``, allows every child node in the sequence to be ticked through even if one of the child node returns ``RUNNING``. This is done to prevent long running child nodes from blocking the sequence.
218218

219219
For additional details regarding the ``NonblockingSequence`` please see the `Nav2 specific node walkthrough <../behavior_trees/overview/nav2_specific_nodes.html>`_ and `NonblockingSequence configuration guide <../configuration/packages/bt-plugins/controls/NonblockingSequence.html>`_.
220220

221221
MPPI Optimal Trajectory Validator Plugin
222-
****************************************
222+
----------------------------------------
223223

224224
The MPPI controller now has a plugin, ``OptimalTrajectoryValidator``, which can be used to validate an output trajectory for execution.
225225
This can be used to check for collisions, margin from obstacles, distance from a path, progress being made, etc.
226226
By default, it uses the ``DefaultOptimalTrajectoryValidator`` which checks for collisions.
227227
Note that kinematic and dynamic constraints are not required to be checked as the Optimizer ensures these constraints are met.
228228

229229
Added PersistentSequence and PauseResumeController Control Nodes
230-
****************************************************************
230+
----------------------------------------------------------------
231231

232232
In `PR #5247 <https://github.com/ros-navigation/navigation2/pull/5247>`_ two new Nav2 specific behavior tree control nodes have been added.
233233

@@ -289,3 +289,72 @@ Below are measured bandwidth values for different transport types with default p
289289
+------------------+----------------+
290290
| zlib | 121.95 |
291291
+------------------+----------------+
292+
293+
Private BT Navigator's BlackBoard ID parameters
294+
-----------------------------------------------
295+
296+
The parameters ``xx_blackboard_id`` used in the BT navigator to specify the name of the blackboard variables from the
297+
behavior trees were moved into the respective navigators. They now have to be specified under the namespace of the particular navigator.
298+
299+
These parameters are:
300+
301+
- NavigateToPose:
302+
303+
- ``<navigate_to_pose_name>.goal_blackboard_id``
304+
- ``<navigate_to_pose_name>.path_blackboard_id``
305+
306+
- NavigateThroughPoses:
307+
308+
- ``<navigate_through_poses_name>.goals_blackboard_id``
309+
- ``<navigate_through_poses_name>.path_blackboard_id``
310+
- ``<navigate_through_poses_name>.waypoint_statuses_blackboard_id``
311+
312+
- CoverageNavigator:
313+
314+
- ``<coverage_navigator_name>.path_blackboard_id``
315+
- ``<coverage_navigator_name>.field_file_blackboard_id``
316+
- ``<coverage_navigator_name>.field_polygon_blackboard_id``
317+
- ``<coverage_navigator_name>.polygon_frame_blackboard_id``
318+
319+
Example:
320+
321+
.. code-block:: yaml
322+
323+
bt_navigator:
324+
ros__parameters:
325+
other parameters: ....
326+
327+
navigate_to_pose:
328+
plugin: "nav2_bt_navigator::NavigateToPoseNavigator"
329+
enable_groot_monitoring: false
330+
groot_server_port: 1667
331+
goal_blackboard_id: "goal"
332+
path_blackboard_id: "path"
333+
334+
navigate_through_poses:
335+
plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator"
336+
enable_groot_monitoring: false
337+
groot_server_port: 1669
338+
goals_blackboard_id: "goals"
339+
path_blackboard_id: "path"
340+
waypoint_statuses_blackboard_id: "waypoint_statuses"
341+
342+
navigate_complete_coverage:
343+
plugin: "opennav_coverage_navigator/CoverageNavigator"
344+
path_blackboard_id: "path"
345+
field_file_blackboard_id: "field_filepath"
346+
field_polygon_blackboard_id: "field_polygon"
347+
polygon_frame_blackboard_id: "polygon_frame_id"
348+
349+
See also :ref:`configuring_bt_navigator`
350+
351+
Option to have custom window size and poly order in Savitsky-Golay Smoother
352+
---------------------------------------------------------------------------
353+
354+
In `PR #5489 <https://github.com/ros-navigation/navigation2/pull/5489>`_, option to have custom window size and polynomial order was added.
355+
Previously, the implementation used a fixed window size of 7 and a polynomial order of 3.
356+
357+
Default value:
358+
359+
- window_size: 7
360+
- poly_order: 3

0 commit comments

Comments
 (0)