Skip to content

Commit

Permalink
Cherry-pick recent Cyclone recommendations to Humble (#560)
Browse files Browse the repository at this point in the history
* Default to Cyclone DDS, remove deprecated time-param algorithms (#519)

* Recommend Cyclone DDS

* Remove mentions of deprecated time-param algorithms

Co-authored-by: Jafar <cafer.abdi@gmail.com>

* Fix the formatting of Cyclone commands (#559)

* Fix the formatting of Cyclone commands

* Link fixup

* RMW clarification

Co-authored-by: Sebastian Castro <4603398+sea-bass@users.noreply.github.com>

Co-authored-by: Sebastian Castro <4603398+sea-bass@users.noreply.github.com>

Co-authored-by: Jafar <cafer.abdi@gmail.com>
Co-authored-by: Sebastian Castro <4603398+sea-bass@users.noreply.github.com>
  • Loading branch information
3 people authored Dec 29, 2022
1 parent 2bf3e23 commit 624faa6
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,11 @@ The speed of a parameterized kinematic trajectory can also be modified during ru

Time Parameterization Algorithms
--------------------------------
MoveIt can support different algorithms for post-processing a kinematic trajectory to add timestamps and velocity/acceleration values. Currently there are three available by default in MoveIt:
MoveIt can support different algorithms for post-processing a kinematic trajectory to add timestamps and velocity/acceleration values. Currently there is only one option in MoveIt:

* :moveit_codedir:`Iterative Parabolic Time Parameterization<moveit_core/trajectory_processing/src/iterative_time_parameterization.cpp>`
* :moveit_codedir:`Iterative Spline Parameterization<moveit_core/trajectory_processing/src/iterative_spline_parameterization.cpp>`
* :moveit_codedir:`Time-optimal Trajectory Generation<moveit_core/trajectory_processing/src/time_optimal_trajectory_generation.cpp>`

Iterative Parabolic Time Parameterization (IPTP) was MoveIt's initial time parameterization algorithm. However, there is a known `bug with it <https://github.com/ros-planning/moveit/issues/160>`_.

The Iterative Spline Time Parameterization (ISTP) algorithm was merged with `PR 382 <https://github.com/ros-planning/moveit/pull/382>`_.

Time-optimal Trajectory Generation (TOTG) introduced in PRs `#809 <https://github.com/ros-planning/moveit/pull/809>`_ and `#1365 <https://github.com/ros-planning/moveit/pull/1365>`_ produces trajectories with very smooth and continuous velocity profiles. The method is based on fitting path segments to the original trajectory and then sampling new waypoints from the optimized path. This is different from strict time parameterization methods as resulting waypoints may divert from the original trajectory within a certain tolerance. As a consequence, additional collision checks might be required when using this method. It is the default everywhere in MoveIt2.
Time-optimal Trajectory Generation (TOTG) was introduced in PRs `#809 <https://github.com/ros-planning/moveit/pull/809>`_ and `#1365 <https://github.com/ros-planning/moveit/pull/1365>`_. It produces trajectories with very smooth and continuous velocity profiles. The method is based on fitting path segments to the original trajectory and then sampling new waypoints from the optimized path. This is different from strict time parameterization methods as resulting waypoints may divert from the original trajectory within a certain tolerance. As a consequence, additional collision checks might be required when using this method. It is the default everywhere in MoveIt2.

Usage of a time parameterization algorithm as a Planning Request Adapter is documented in `this tutorial <../motion_planning_pipeline/motion_planning_pipeline_tutorial.html#using-a-planning-request-adapter>`_.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,10 +168,9 @@ int main(int argc, char** argv)
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// For this tutorial we use an :codedir:`InteractiveRobot <interactivity/src/interactive_robot.cpp>`
// object as a wrapper that combines a robot_model with the cube and an interactive marker. We also
// create a :planning_scene:`PlanningScene` for collision checking. If you haven't already gone through the
// create a PlanningScene for collision checking. If you haven't already gone through the
// :doc:`planning scene tutorial </doc/examples/planning_scene/planning_scene_tutorial>`, you go through that first.
InteractiveRobot robot;
/* Create a PlanningScene */
g_planning_scene = new planning_scene::PlanningScene(robot.robotModel());

// Adding geometry to the PlanningScene
Expand Down
9 changes: 9 additions & 0 deletions doc/tutorials/getting_started/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,15 @@ Optional: add the previous command to your ``.bashrc``: ::
not required and often skipped by advanced users who use more than one
Colcon workspace at a time, but we recommend it for simplicity.

Switch to Cyclone DDS
^^^^^^^^^^^^^^^^^^^^^

As of Sep 26, 2022, the default ROS 2 middleware (RMW) implementation has an issue. As a workaround, switch to Cyclone DDS. (Note: this makes all nodes started using this RMW incompatible with any other nodes not using Cyclone DDS.) ::

sudo apt install ros-rolling-rmw-cyclonedds-cpp
# You may want to add this to ~/.bashrc to source it automatically
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

Next Step
^^^^^^^^^
Nice job! Next we will :doc:`Visualize a robot with the interactive motion planning plugin for RViz </doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial>`
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This tutorial will teach you how to create motion plans in MoveIt using RViz and

Getting Started
---------------
If you haven't already done so, make sure you've completed the steps in :doc:`Getting Started </doc/tutorials/getting_started/getting_started>`.
If you haven't already done so, make sure you've completed the steps in :doc:`Getting Started </doc/tutorials/getting_started/getting_started>` or our :doc:`Docker Guide </doc/how_to_guides/how_to_setup_docker_containers_in_ubuntu>`. As of Sep 26, 2022, ensure you have enabled Cyclone DDS as described there.

Step 1: Launch the Demo and Configure the Plugin
------------------------------------------------
Expand Down

0 comments on commit 624faa6

Please sign in to comment.