From bcbac7a8f2bac961a2669daa329fd6dce177bb58 Mon Sep 17 00:00:00 2001 From: Vladimir Ivan Date: Thu, 11 Jul 2024 10:01:22 +0000 Subject: [PATCH] Updated docs --- joint_trajectory_controller/doc/trajectory.rst | 2 ++ joint_trajectory_controller/doc/userdoc.rst | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/joint_trajectory_controller/doc/trajectory.rst b/joint_trajectory_controller/doc/trajectory.rst index 44f385de27..d570d59fab 100644 --- a/joint_trajectory_controller/doc/trajectory.rst +++ b/joint_trajectory_controller/doc/trajectory.rst @@ -49,6 +49,8 @@ The spline interpolator uses the following interpolation strategies depending on Trajectories with velocity fields only, velocity and acceleration only, or acceleration fields only can be processed and are accepted, if ``allow_integration_in_goal_trajectories`` is true. Position (and velocity) is then integrated from velocity (or acceleration, respectively) by Heun's method. +Effort trajectories are allowed for controllers that claim the ``effort`` command interface and they are treated as feed-forward effort that is added to the position feedback. Effort is handled separately from position, velocity and acceleration. We use linear interpolation for effort when the ``spline`` interpolation method is selected. + Visualized Examples ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To visualize the difference of the different interpolation methods and their inputs, different trajectories defined at a 0.5s grid and are sampled at a rate of 10ms. diff --git a/joint_trajectory_controller/doc/userdoc.rst b/joint_trajectory_controller/doc/userdoc.rst index 4dcb71a064..2967e4e883 100644 --- a/joint_trajectory_controller/doc/userdoc.rst +++ b/joint_trajectory_controller/doc/userdoc.rst @@ -24,12 +24,15 @@ Currently, joints with hardware interface types ``position``, ``velocity``, ``ac * ``position``, ``velocity``, ``acceleration`` * ``velocity`` * ``effort`` +* ``position``, ``effort`` This means that the joints can have one or more command interfaces, where the following control laws are applied at the same time: * For command interfaces ``position``, the desired positions are simply forwarded to the joints, * For command interfaces ``acceleration``, desired accelerations are simply forwarded to the joints. * For ``velocity`` (``effort``) command interfaces, the position+velocity trajectory following error is mapped to ``velocity`` (``effort``) commands through a PID loop if it is configured (:ref:`parameters`). +* For ``effort`` command interface (without ``position`` command interface), if the trajectory contains effort, this will be added to the PID commands as a feed forward effort. +* For ``position, effort`` command interface, if the trajectory contains effort, this will be passed directly to the ``effort`` interface (PID won't be used) while the positions will be passed to the ``position`` interface. This leads to the following allowed combinations of command and state interfaces: @@ -38,7 +41,7 @@ This leads to the following allowed combinations of command and state interfaces * if command interface ``velocity`` is the only one, state interfaces must include ``position, velocity`` . -* With command interface ``effort``, state interfaces must include ``position, velocity``. +* With command interface ``effort`` or ``position, effort``, state interfaces must include ``position, velocity``. * With command interface ``acceleration``, state interfaces must include ``position, velocity``.